li.cyam 2023-10-24 10:08 采纳率: 0%
浏览 1

mysql组合索引未生效

-- 创建表
CREATE TABLE my_table (
  id INT,
  namevalue INT,
  age INT
);

-- 创建主键索引
ALTER TABLE my_table
ADD PRIMARY KEY (id);

-- 创建组合索引
ALTER TABLE my_table
ADD INDEX indexa (id, namevalue, age);

sql1:EXPLAIN select * from my_table where id = 1 and namevalue = 1 and age = 1;
sql2:EXPLAIN select * from my_table order by id, namevalue, age;

请问为什么sql1执行语句分析中并没有使用到组合索引?

img

  • 写回答

3条回答 默认 最新

  • 专业研究祖传Bug编写术 全栈领域新星创作者 2023-10-24 10:13
    关注

    这可能是由于查询条件中的列没有按照索引的顺序进行排列,或者查询条件中的列没有完全匹配索引的前缀。此外,如果表中的数据量很小,MySQL可能会选择不使用索引,而是直接扫描整个表。为了优化查询性能,可以尝试重新设计索引,或者使用FORCE INDEX语句强制MySQL使用特定的索引。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月24日

悬赏问题

  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error