索引 学习笔记
索引类型
聚簇索引
使用记录主键值大小进行排序,B+树叶子节点存储了完整的用户记录, 一个表只能有一个,不允许为NULL,不能重复。
二级索引
以非主键列的大小为排序规则建立的B+树,并且需要执行回表操作才能定位到完成的用户记录
联合索引
以多个列的大小作为排序规则建立的B+树
索引注意事项
在使用索引来减少需要扫描的记录数量时,应该先找到使用该索引执行查询时对应的扫描区间和形成该扫描区间的边界条件,然后就可以扫描各个扫描区间中的记录。如果扫描的是二级索引记录,并且需要完成的用户记录,就需要根据获取到的每条二级索引记录的主键值执行回表操作。
- 只为用于搜索、排序或者分组的列创建索引
- 当列中不重复的个数在总记录条数中的占比很大时,才为列建立索引
- 索引列的类型尽量小
- 可以只为索引列前缀建立索引,以减少索引占用的存储空间
- 尽量使用覆盖索引进行查询,以减少回表操作带来的性能损耗
- 让索引列以列名的形式在搜索条件中单独出现
- 为尽可能少地让聚簇索引发生页面分裂的情况,建议让主键拥有AUTO_INCREMENT 属性
- 定位并删除表中的冗余和重复索引列
浙公网安备 33010602011771号