- 如果索引列出现了隐式类型转换,则MySQL不会使用索引
- 在where子句中字段类型是字符串,值是数值,如果没有加引号则MySQL不会使用索引
- where条件中含有or,除非or前面使用了索引列而or之后是非索引列,索引会失效(回表次数过多导致)
- MySQL不能在索引中执行like操作,这是底层存储引擎api的限制,最左匹配的like比较会转换为简单的比较,但是如果以通配符开头的like查询,存储引擎就无法比较。这种情况下MySQL只能提取数据行的值而不是索引值来比较
- 如果查询的列不是独立的,则MySQL不会使用索引。独立的列是指索引列不能是表达式的一部分,也不能是函数的参数
- 对于多个范围条件查询,MySQL无法使用第一个范围列后面的其他索引列,对于多个等值查询则没有这种限制
- 如果MySQL判断全表扫描比使用索引查询更快,则不会使用索引
- 索引文件具有B-Tree的最左前缀匹配特性,如果左边的值未确定,则无法使用该索引
索引(a,b,c)没有a索引失效,其他没有,索引可以正常使用(MySQL5.6后优化的索引条件下推)
posted @
2022-03-14 09:49
张三丰学Java
阅读(
40)
评论()
编辑
收藏
举报
点击右上角即可分享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2021-03-14 layui.use