暂无图片
只要创建了索引,就一定会走索引吗? (索引什么时候失效)
我来答
分享
愿世间无疾无病
2022-12-17
只要创建了索引,就一定会走索引吗? (索引什么时候失效)

只要创建了索引,就一定会走索引吗? (索引什么时候失效)

我来答
添加附件
收藏
分享
问题补充
7条回答
默认
最新
yBmZlQzJ

不一定。在有些情况下,索引可能不被使用:

  • 使用了!或<>
SELECT * FROM `user` WHERE `name` != 'Durant';
复制
  • 隐式类型转换

下面salary设计的时候是double,被写错为整数了,不会使用索引。

SELECT * FROM `user` WHERE salary= 17500;
复制
  • 索引列参与了计算
   SELECT `sname` FROM `t_stu` WHERE `age`+10=30;    -- 不会使用索引!!因为所有索引列参与了计算
复制
  • 索引列使用了函数
SELECT `sname` FROM `stu` WHERE concat(`sname`,'abc') ='Jaskeyabc';   -- 不会使用索引,因为使用了函数运算,原理与上面相同
复制
  • 索引列使用了Like %XXX
SELECT * FROM `user` WHERE `name` LIKE '%冰';
复制
  • or只有所有条件建立索引,才会使用索引
SELECT * FROM `user` WHERE `name` = '张三' OR height = '175';
复制
  • 使用了order by

在ORDER BY操作中,排序的列同时也在WHERE中时,MYSQL将无法使用索引;

暂无图片 评论
暂无图片 有用 2
打赏 0
暂无图片
2022-12-17
索引是高效获取数据的数据结构,且在这些数据结构上实现的高级查找算法。
风车
2022-12-18
这个好,写的好全面啊!各种条件都考虑到了
刘贵宾

不一定。在有些情况下,索引可能不被使用哦

暂无图片 评论
暂无图片 有用 5
打赏 0
哇哈哈

不一定。在有些情况下,索引可能不被使用

暂无图片 评论
暂无图片 有用 0
打赏 0
huayumicheng
2022-12-17
不一定。在有些情况下,索引可能不被使用
shunwahⓂ️
不一定。在有些情况下,索引可能不被使用。
暂无图片 评论
暂无图片 有用 0
打赏 0
鸿惊九天

不一定。在有些情况下,索引可能不被使用。

暂无图片 评论
暂无图片 有用 1
打赏 0
伊伊相印
2022-12-17
不一定。在有些情况下,索引可能不被使用:
伊伊相印
2022-12-18
不一定。在有些情况下,索引可能不被使用。
yBmZlQzJ

不一定。在有些情况下,索引可能不被使用。

暂无图片 评论
暂无图片 有用 2
打赏 0
yBmZlQzJ

不一定。在有些情况下,索引可能不被使用。

暂无图片 评论
暂无图片 有用 2
打赏 0
回答交流
Markdown


请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏