你知道索引失效嘛?举例看看?
程序员文章站
2022-07-05 23:48:43
索引失效,可以从一下几种原因中分析:1.在where条件的等号左侧中使用函数where date(create_at) = ‘2019-01-01’带有列的函数计算值,导致索引无法使用。2.表关联字符集格式以及排序方式不一致关注CHARSET和COLLATIONSQL写法错误导致的索引失效比较常见的例子是,我们存储手机号的字段格式为varchar,但是SQL却写的where phone=123;3.统计信息不准确在查询中使用 !=、not in、not exists等4.MySQL支持前缀...
索引失效,可以从一下几种原因中分析:
1.在where条件的等号左侧中使用函数
where date(create_at) = ‘2019-01-01’
带有列的函数计算值,导致索引无法使用。
2.表关联字符集格式以及排序方式不一致
关注CHARSET和COLLATION
SQL写法错误导致的索引失效比较常见的例子是,我们存储手机号的字段格式为varchar,但是SQL却写的where phone=123;
3.统计信息不准确
在查询中使用 !=、not in、not exists等
4.MySQL支持前缀索引,但是不支持后缀索引
5.where条件中有or,需将or中的每个字段都加上索引
6.状态值少的字段不宜使用索引,例如性别。
设置联合索引时,索引的建立顺序要和where或者order by条件中的字段顺序相同,如建立name、status(分别为key1、key2)的联合索引,此时以name字段为第一查询顺序的索引有效
参考:https://blog.csdn.net/weixin_43166227/article/details/107086668(个人学习使用,无商用!)
本文地址:https://blog.csdn.net/weixin_47396087/article/details/107671855
上一篇: Windows 11惹祸!AMD锐龙游戏性能暴跌15%
下一篇: centos7搭建安装sentry