课程名称:3.7.4 TiDB 的索引
学习时长:20min
课程收获:iDB 中的索引以及使用和管理这些索引的方式
课程内容:
-
索引介绍
-
唯一索引和主键索引
-
唯一索引:允许可空列上的多个NULL值
-
主键索引:唯一且非空
-
聚簇索引和非聚簇索引
-
聚簇索引
-
非聚簇索引
-
大多数情况下,聚簇索引比非聚簇索引性能要好
-
聚簇索引可能会导致热点,无法通过将row_id分片来优化
-
TiDB如果想让主键索引是聚簇索引,必须:
- 1、alter-primary-key=false
- 2、主键索引是单列整型
-
要想获得全类型聚簇索引支持,TiDB5.0可能会实现
-
-
-
多列索引
- 最左前缀原则
-
表达式索引
- 功能强大
- 可以在模糊查询上建立表达式索引,加速模糊查询
-
前缀索引
-
可以在char,varchar,binary,varbinary上创建
-
对BLOB和TEXT,一定要创建
-
优点
- 如果前缀部分不同,则可以加速查询性能
- 索引尺寸小
-
-
-
索引管理
-
索引相关系统表
- information_schema.tidb_indexes
- show index from table_name
-
索引提示
-
use index([idx1_name][,idx2_name …])
- 如select * from t use index(t1);
-
ignore index([idx1_name][,idx2_name …])
- 如select * from t ignore index(t1);
- 或select * from t use index();
-
-