键盘歌唱家 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排序。

    评论

报告相同问题?

悬赏问题

  • ¥20 Html备忘录页面制作
  • ¥15 黄永刚的晶体塑性子程序中输入的材料参数里的晶体取向参数是什么形式的?
  • ¥20 数学建模来解决我这个问题
  • ¥15 计算机网络ip分片偏移量计算头部是-20还是-40呀
  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 django5安装失败