MySQL问题:什么是MySQL的中的最左匹配原则?

是指在复合索引中,查询条件需要按照索引列的顺序从最左侧列开始依次匹配。只有查询条件中的列按照索引的最左边列开始进行匹配,索引才能被有效使用,但有时虽然不是正常顺序,由于MySQL中存在优化器,会自动调整顺序,依旧能使用索引

联合索引的顺序

例如:联合索引(a,b,c)在B+Tree中的排序是:先按a的值排序,如果a的值相同的,则按b的值排序,如果b的值相同,在按c的值排序。

注意:如果遇到范围查询(>,<),就会停止匹配

如果遇到>=、between、like等范围查询,则不会停止匹配,原因:这些查询包含一个凳子判断,这样可以直接定位到某个数据,然后往后扫描即可。

如何设计联合索引?

也就是如何满足最左匹配原则的实现

高频查询字段放左侧,等值查询字段优先于范围查询字段。

相关推荐
千层冷面2 小时前
Redis 的内存回收机制
数据库·redis·缓存
XiaoCCCcCCccCcccC4 小时前
MySQL 表内容的增删查改 -- CRUD操作,聚合函数,group by 子句
数据库·mysql
码农捻旧4 小时前
MySQL 9.3 超详细下载安装教程(Windows版)附图文说明
数据库·windows·mysql·adb·程序员创富
SofterICer4 小时前
8.7 基于EAP-AKA的订阅转移
linux·服务器·数据库
stormsha5 小时前
GO语言进阶:掌握进程OS操作与高效编码数据转换
开发语言·数据库·后端·golang·go语言·源代码管理
尘埃不入你眼眸5 小时前
MySQL的基础操作
数据库·mysql
yzlAurora6 小时前
MySQL问题:MVCC是什么?
数据库·oracle
消失在人海中7 小时前
实时数仓和离线数仓的区别是什么?企业如何选择合适的数仓架构?
大数据·数据库·架构
声声codeGrandMaster8 小时前
Django实现文件上传
数据库·后端·python·django
人生苦短1288 小时前
oracle查看函数
数据库·oracle