首页 > 其他 > 详细

聚簇索引和二级索引

时间:2020-02-23 19:41:07      阅读:96      评论:0      收藏:0      [点我收藏+]

innodb中,在聚簇索引之上创建的索引称之为辅助索引,非聚簇索引都是辅助索引
innodb引擎通过搜索树方式实现索引,索引类型分为主键索引(聚集索引)和 二级索引(非主键索引)

技术分享图片

主键索引树中,叶子结点保存着主键即对应行的全部数据
二级索引树中,叶子结点保存着索引值和主键值(先通过普通索引定位到主键值id=5;在通过主键索引定位到行记录;这个过程会有回表查询)
当使用二级索引进行查询时,需要进行回表操作

覆盖索引: 查询的列和查询条件的列全部包含在一个索引中,可以直接使用索引查询而不需要回表。这就是覆盖索引
覆盖索引是指索引中的列包含了数据处理中涉及的所有列,覆盖索引相当原始表的一个子集
通过使用覆盖索引,可以减少搜索树的次数,是常用的性能优化手段

例1:

name是一个索引:select id from table where name = aaa
由于name索引树的叶子结点上保存有username和id的值,通过name索引树查找到id后 就不需要在主键索引去查找了
例2:name是一个索引:select pwd from user_table where name = aaa
1、name索引树上找到name=aaa对应的主键id
2、通过回表在主键索引树上找到满足条件的数据
可以组建联合索引(name, pwd),这样,查询的时候就不需要再去回表操作了,可以提高查询效率

题外

前缀索引:
mysql的b+树索引遵循“最左前缀”原则
联合索引(username,pwd)注意查询顺序
例1:where username like ‘张%‘"

 

聚簇索引和二级索引

原文:https://www.cnblogs.com/webster1/p/12353272.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!