键盘歌唱家 2021-06-08 22:13 采纳率: 0%
浏览 18

MySQL联合索引的问题

#创建一个表
create table test02
(
	a1 char(3),
	a2 char(3),
	a3 char(3),
);

#给表加上联合索引
alter table test02 add index idx_a1_a2_a3 (a1,a2,a3) ;

按照最佳左前缀原则,相当于上面的表只存在(a1)、(a1、a2)、(a1,a2,a3)这三个索引

其实是没有单独的(a3)索引,也不存在(a2,a3)

但是执行explain select a3 from test02 where a3= '' ;却发现用到了该联合索引,我想问的问题是最佳左前缀是不是错的!!!!

 

  • 写回答

2条回答 默认 最新

  • 关注

    这是3个字段的组合索引,意思就是先按a1排序,如果a1相同则按a2排序,如果a2相同则按a3排序。

    评论

报告相同问题?

悬赏问题

  • ¥15 rexroth indramotion MTX micro系统轴耦合编程
  • ¥20 dify的代码解释器工具和代码执行节点有什么区别?代码解释器工具怎么用?
  • ¥100 springboot2.7.x 整合 sharding 的问题
  • ¥15 如何通过命令行操作统信360安全浏览器?
  • ¥15 upload-labs-master第三关
  • ¥15 关于LT3758反激式负压电源,功率三极管烧毁的问题
  • ¥20 aruba ap305 CAP转IAP
  • ¥20 rockchip rk3588 ffmedia运行异常
  • ¥30 如何用 Java 简单系统设计?(相关搜索:服务器|面向对象设计|随机数)
  • ¥15 鸿蒙开发(关键词-开发环境)