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

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

联合索引的顺序

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

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

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

如何设计联合索引?

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

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

相关推荐
大模型玩家七七20 小时前
梯度累积真的省显存吗?它换走的是什么成本
java·javascript·数据库·人工智能·深度学习
曾经的三心草20 小时前
redis-9-哨兵
数据库·redis·bootstrap
明哥说编程20 小时前
Dataverse自定义表查询优化:D365集成大数据量提速实战【索引配置】
数据库·查询优化·dataverse·dataverse自定义表·索引配置·d365集成·大数据量提速
xiaowu08020 小时前
C# 拆解 “显式接口实现 + 子类强类型扩展” 的设计思想
数据库·oracle
讯方洋哥20 小时前
HarmonyOS App开发——关系型数据库应用App开发
数据库·harmonyos
惊讶的猫21 小时前
Redis持久化介绍
数据库·redis·缓存
Apple_羊先森21 小时前
ORACLE数据库巡检SQL脚本--19、磁盘读次数最高的前5条SQL语句
数据库·sql·oracle
全栈前端老曹1 天前
【MongoDB】Node.js 集成 —— Mongoose ORM、Schema 设计、Model 操作
前端·javascript·数据库·mongodb·node.js·nosql·全栈
神梦流1 天前
ops-math 算子库的扩展能力:高精度与复数运算的硬件映射策略
服务器·数据库
让学习成为一种生活方式1 天前
trf v4.09.1 安装与使用--生信工具42-version2
数据库