page contents

为什么索引没有被使用?

轩辕小不懂 发布于 2022-03-22 14:17
阅读 539
收藏 0
分类:数据库
3349
Nen
Nen
- 程序员

“为什么索引没有被使用”是一个涉及面较广的问题,有多种原因会导致索引不能被使用,下面列出几种常见的场景。

1)若索引列出现了隐式类型转换(Implicit Type Conversion),则MySQL不会使用索引。常见的情况是,如果在SQL的WHERE条件中,字段类型为字符串,而其值为数值,那么MySQL不会使用索引,这个规则和Oracle是一致的,所以,字符类型的字段值应该加上引号。例如,表t_base_user的telephone列是一个字符类型的索引列,下面的语句在执行的时候就不会选择索引:

attachments-2022-03-xaXXl0vP6239713734a1b.png

为了使查询能使用,应该把SQL语句修改为:

attachments-2022-03-mIFdWWRw623971509be15.png

请先 登录 后评论