1. 回表
1)使用聚簇索引查询只需要查询一次 (叶子节点有该行数据)
2) 使用覆盖索引查询,也只需要查询一次,无需回表
3) 使用普通索引查询非索引字段,需要回表查询多次
2.聚簇索引和覆盖索引
1) 主键默认使用聚簇索引
2) 没有主键的唯一索引也会使用聚簇索引
3) 覆盖索引用于减少磁盘访问次数,避免回表查询
3. 最左前缀列
联合索引[A,B] 生效需要先使用最左边的索引A, 且为等值查询时,后面的索引B才能有效
4. 索引选择性
索引选择性= 索引列不同的值数量/ 表的总行数
5. 压缩索引
MyIsam使用,减少空间,利于放入内存
6. 冗余索引
如果存在索引[A,B],再创建索引A, 索引A就是冗余索引
7. 联合索引
8. 索引下推技术
9. 优化器 (明明创建了索引,却没有走索引)
10 . 索引查询的统计
11 哈希索引和B+ Tree的区别,为什么InnoDB选择B+ Tree
1) 哈希索引只支持等值查询,不支持大于,小于,区间等查询;B+树支持
2) 哈希索引不支持排序,B+树支持按索引排序
3) 哈希索引不支持左前缀匹配,B+树支持
12. 分裂
13. 页大小