神的尾巴

全栈工程师、独立开发者

0%

聊聊Mysql索引

Mysql索引类型

  1. 主键索引。
  2. 唯一索引。
  3. 普通索引。
  4. 组合索引。
  5. 全文索引。

索引原则

  1. 最左匹配原则。
  2. 尽量选择区分度高的列作为索引。
  3. 索引列不能参与计算。
  4. 尽量扩展索引,不要新建索引,避免冗余。
  5. 连接列必须创建索引。
  6. order by, group by, distinct后的字段需要添加索引。
  7. 更新比较频繁的表中,尽量少建索引。
  8. 合理使用覆盖索引。

数据结构

普遍使用B+树,真实数据只存储在叶子节点,利于了操作系统的预读,每次IO读取的数据为一页,一般为4k或8k。

聚族索引和非聚族索引

聚族索引的叶节点就是数据节点,非聚族索引的叶节点仍然是索引节点。

聚族所以本身是按照物理顺序放置的,排序很快。

一张表,聚族索引只能有一个(一般是主键),因为保存了所有的数据行。

参考文章

  1. MySQL索引原理及慢查询优化
  2. mysql 聚簇索引 和聚簇索引 (二级索引)的 那些事
觉得对你有帮助的话,请我喝杯咖啡吧~.