【TiDB 4.0 PCTA 学习笔记】- 3.7.4 TiDB Indexes @2班+马志林

课程名称:【TiDB 4.0 PCTA 学习笔记】- 3.7.4 TiDB Indexes (TiDB 的索引)

学习时长:20m

课程收获:

了解 TiDB 中的索引以及使用和索引管理

课程内容:

一、主键和唯一索引
1、唯一索引值必须是唯一的,可以插入多个空值
主键索引 在逻辑上是 唯一索引 + 非空约束

2、主键索引的物理特性
聚簇索引 :
%E5%9B%BE%E7%89%87
非聚簇索引:
%E5%9B%BE%E7%89%87
3、特性
大多数情况下,聚簇索引比非聚簇索引性能更好
但是当主键上有热点时,则无法使用shard_row_id等功能来打散热点,导致性能反而更差
mysql innodb 中 主键就是 聚簇索引
tidb4.0中,主键只有在 alter-primary-key=false 和 主键必须是整数列 才是聚簇索引,否则只能是非聚簇
在tidb5.0中,聚簇索引将支持 char decimal等

二、多列索引
最左前缀匹配原则

三、表达式索引
索引建立在表达式上,对复杂查询更有效果


比如:
select * from t where a like ‘%b%’ ;
通常索引失效,但是可以建立表达式索引,
alter table t add index idx((a like ‘%b%’)) ;
修改查询语句为 select * from t use index(idx) where a like ‘%b%’ =1
即可使用了新索引

四、前缀索引
前缀索引 是建立在列中值的前一部分,blob 和 text 必须指定前缀索引,其他字符型也可以选择。
优点:获得更好的查询性能;索引部分字符的差异越大,性能越好;存储占用空间相对小。

五、TiDB索引管理
1、相关系统表
tidb_index 表 储存索引元信息

2、索引使用
use index 、ignore index
%E5%9B%BE%E7%89%87

同学你好,感谢参与 TiDB 4.0 课程的学习!

本篇笔记逻辑清晰、内容丰富,被评选为优质笔记,将额外获得 20 积分,并在 「TiDB 培训」分类下获得“置顶”权益,积分兑换规则将于近期开放,敬请关注!

期待您继续产出优质内容!