MYSQL 什么情况下不应该使用索引

今天同事问了一波,如果要建一张表,什么情况下使用索引,什么情况下不使用。

那么我们其实都知道使用索引好,但是什么情况下不使用索引比较好,这就有点不清楚了,下边来细说一下。

1,表的数据量特别小的时候。

如果一张表,只有极少的几条数据,那么不使用索引,是直接全表扫描,速度也是极快的。

但是如果使用索引,为什么反而慢了呢?

因为才用索引去访问记录的话,首先要去访问索引表,然后再通过索引表访问数据表,一般情况下索引表与我们的数据表不在同一个数据块,这种情况下需要去往返两个数据块,两次,而不使用索引,一次就可以完成,所以在数据量小的时候,反而不使用索引更快。

2,数据的差异性很小

什么叫做数据的差异性很小呢,就是你一个字段,只有2个值,比方说,性别,这只有两个数据的字段,就算建了索引,那么数据库的索引二叉树级别也很少,大多都是平级的,这样的二叉树跟全表查询差别不大。

3,频繁更新的字段

如果一个字段频繁更新,还使用索引,会加大数据库的工作量,所以不建议使用。

4,查询字段中含有IS NULL /IS NOT NULL/ like ‘%输入符% / <> 等条件

如果查询条件中,有这些条件,就算该字段有索引,也不会使用索引,一定要注意。

猜你喜欢

转载自blog.csdn.net/Liuyooer/article/details/84892722