[MySQL] 联合索引最左前缀原则的原因
2023-02-18 15:41:33 时间
联合索引有个最左前缀原则 , 这个原则的原因是这样的
比如有个联合索引 (b,c,d)
在索引的排序上 , 是先按b排序 , 再按c排序 , 再按d排序
比如有如下数据:
a 是主键 , b c d创建了联合索引
生成的索引结构为:
看最后的叶子节点数据的排序 , 先按第一行b 排序 , 再按第二行 c 排序 , 最后按第三行 d排序 , 紫色部分是主键
查询的时候 , 先按a字段的查询 a相同的再按b的查询 b也相同的再按c的查询
这样的索引构建方式及存储结构,所以联合索引只能从多列索引的第一列开始查找。所以如果你的查找条件不包含b列如(c,d)、(c)、(d)是无法应用索引的,以及跨列也是无法完全用到索引如(b,d),只会用到b列索引。
相关文章
- Excel根据名称批量导入图片
- Istio(六):Istio弹性(超时&重试)和故障注入
- Istio(五):使用服务网格Istio进行流量路由
- STM32寄存器深入分析
- STM32时钟系统的配置寄存器和源码分析
- Istio(四):创建部署Gateway并使用网关暴露服务
- STM32F3 GPIO的八种模式及工作原理
- STM32新建模板之寄存器
- STM32新建模板之库文件
- STM32零基础入门教程
- Docker镜像上传到阿里云
- Docker 之 Dockerfile
- Istio(三):服务网格istio可观察性:Prometheus,Grafana,Zipkin,Kiali
- Docker 安装 MySQL
- Docker 安装Nginx
- Docker常用命令
- Ubuntu安装Docker
- Istio(二):在Kubernetes(k8s)集群上安装部署istio1.14
- ARM架构安装ubuntu系统
- Istio(一):服务网格和 Istio 概述