当前位置: 移动技术网 > IT编程>数据库>Mysql > 你知道索引失效嘛?举例看看?

你知道索引失效嘛?举例看看?

2020年07月30日  | 移动技术网IT编程  | 我要评论
索引失效,可以从一下几种原因中分析: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

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网