MySQL中覆盖索引、最左前缀、索引下推

【饿了么、美团】外卖红包领取地址 >> 能省一点是一点

覆盖索引

索引上的数据可以直接提供查询结果,不需要回表,索引已经“覆盖了”查询的需求,这就叫做覆盖索引。

优点:覆盖索引减少了树的搜索次数,可以显著提升查询性能。

最左前缀

建立了联合索引(a,b),由于满足了最左前缀原则,所以相当于也建立了索引(a)

问题:在建立联合索引的时候,如何安排索引内的字段顺序?
第一原则是,如果通过调整顺序,可以少维护一个索引,那么这个顺序往往就是需要优先考虑采用的;其次考虑的原则是空间

举例一:需要建立(a,b)和(b)的索引,由于可以调整联合索引的顺序为(b,a),相当于就也建立了索引(b),所以直接建立联合索引(b,a)即可。
举例二:需要建立(a,b)和(a)和(b)的索引,有2种索引建立办法 (b,a)和(a) 或 (a,b)和(b) 。两种办法效果是一样的,这个时候就可以考虑空间的问题,如果字段a的长度远小于字段b,那么就可以采用 (b,a)和(a) 的索引建立办法。

索引下推

在MySQL 5.6之后,引入了索引下推的优化,可以在索引的遍历过程中,对索引中包含的字段先行进行判断,过滤掉不满足条件的记录,减少回表次数

举例:有联合索引(name,age),查询条件where name like '张%' and age=10
无索引下推

有索引下推

通过图片可以看出,索引下推减少了回表的次数,所以可以提升查询性能。


觉得内容还不错?打赏个钢镚鼓励鼓励!!👍

金隆兴 a5笔记本子超厚商务记事本简约加厚大学生日记本办公文具用品皮面本子工作会议记录本 可定制 7280-3
¥9.90
齐心(COMIX)12本/A5/30张笔记本子/软抄本/无线装订本/记事本/日记本 经典系列 办公文具 ECC1084
¥22.80
闪魔 苹果11钢化膜 iphoneXR/XsMax/11promax手机膜高清非全屏抗蓝光防窥保护膜 XR/11【6.1寸^防窥膜】1片装
¥26.00
启达教育·小学数学口算速算练习册 三年级下 人教版(新版)
¥13.26
老金磨方 枣仁魔方红枣夹核桃新疆特产真空小包装即食零食150g
¥21.90
海底两万里(彩插版)全本无删减 中小学课外阅读推荐 无障碍阅读
¥19.26
稳健鼻喉护理 洗鼻器家用鼻腔冲洗盐水儿童成人专用冲洗器鼻腔清洁 洗鼻器1个(500ml手动阀门)送4.5g 2盒盐
¥28.90
全棉时代轻时光系列纯棉洗脸巾家用吸水毛巾柔软速干 时光蓝32cm*70cm
¥29.90