0
点赞
收藏
分享

微信扫一扫

MySQL索引【数据结构+索引创建原则】

dsysama 2022-04-22 阅读 50

本文整理自尚硅谷MySQL数据库教程天花板

文章目录

索引

  1. 索引的本质就是一种数据结构,简单理解为排好序的可快速查找的数据结构

  2. mysql中,索引的数据结构可以为HASH(哈希) 或 BTREE(B+树)

  3. 我们通常所说的索引,包括聚簇索引(主键索引)、普通索引、唯一索引、组合索引、全文索引等,没有特别说明,默认都是使用B+树结构

  4. 索引虽然会提高查询效率,但是会降低更新表的效率。比如每次对表进行增删改操作,mysql不仅要更新数据,还要更新对应的索引

索引的数据结构比较

B+树

索引类型

存储索引的方式

回表查询

覆盖索引(避免回表查询)

复合/联合索引设计原则

  1. 将范围查询的列放在复合索引的最后面
  2. 列过滤的频繁越高,选择性越好,应该作为复合索引的前导列,适用于等值查找

适合创建索引的11种情况

不适合创建索引的7种情况

  1. 在where中使用不到的字段,不要设置索引
  2. 数据量小的表最好不要使用索引
  3. 有大量重复数据的列上不要建立索引
  4. 避免对经常更新的表创建过多的索引
  5. 不建议用无序的值作为索引 例如身份证、UUID(在索引比较时需要转为ASCII,并且插入时可能造成页分裂)、MD5、HASH、无序长字符串等。
  6. 删除不再使用或者很少使用的索引
  7. 不要定义冗余或重复的索引
举报

相关推荐

0 条评论