page contents

Mysql索引查询失效的情况

以下内容希望能帮助到你!

attachments-2020-08-1v4Y8TMe5f33900407918.jpg

一:不在索引上使用函数,计算等

在kq_time上增加了一个索引,见图一

attachments-2020-08-ENek7RkX5f338fcab7d80.jpg

我们使用date()函数进行查询,见图二

attachments-2020-08-l4xQSRB85f338fd6a91c3.jpg

图二根据kq_time字段查询并没有使用索引,我们可以根据kq_time换一种写法,他就可以走索引了,见图三

attachments-2020-08-vkdukAyL5f338ff625272.jpg

查询条件是一样的,图三的写法就走索引了。


二:尽量少使用!=,<>,这样可能是导致全表扫描

我在person_name上建立了一个索引,见图四

attachments-2020-08-pqNpDUkI5f338fb88bbe9.jpg

根据person_name='张三'使用了索引,见图五

attachments-2020-08-GeAORbKh5f338fab20aeb.jpg

根据person_name!='张三'就没有使用了索引,见图六

attachments-2020-08-EIHxzJpl5f338f9f75975.jpg

图六!=导致了全表扫描,<>,也会导致全表扫描,我这里就不演示了


三:is null和is not null也无法使用索引

attachments-2020-08-NObxVymq5f338f9302f5a.jpg

person_name已经建立了索引,然而并没有走索引


四:like关键字 ,以为%开头,也会导致索引失效,导致全表扫描。

见图八

attachments-2020-08-27CUWylM5f338f8482c0a.jpg

五:少用in跟or,可能会导致索引失败。

见图九

attachments-2020-08-99S9K9Tj5f338f72c9841.png


六:范围查询包括表中大部分数据,也会导致索引失效。

见图十

attachments-2020-08-9FToRa7G5f338f3900907.png


attachments-2020-08-02v1Q7q55f338f40000b3.jpg

  • 发表于 2020-08-12 14:47
  • 阅读 ( 485 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1135 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1478 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章