四十、【进阶】索引失效情况2

1、or的使用

在使用索引查询时,如果使用了or,会出现以下情况:

(情况一)or左边是索引查询,or右边不是索引查询

结果:索引查询失效

(情况二)or左边不是索引查询,or右边是索引查询

结果:索引查询失效

(情况三)or左边是索引查询,or右边也是索引查询

结果:索引拆线呢生效

(举例):

四十、【进阶】索引失效情况2_第1张图片

(解决方案):

我们只需要对非索引的字段,建立索引即可

四十、【进阶】索引失效情况2_第2张图片

2、数据分布影响

(1)情况

        如果MySQL评估使用索引的效率会比全表扫描慢,那么MySQL将自动使用全表扫描,放弃索引查询。

(2)实际操作

四十、【进阶】索引失效情况2_第3张图片

        在这张图中,我们可以清楚的看到,在执行第一条查询语句时, 查询方式为索引查询,在执行第二条查询语句时,查询方式为全表扫描。

你可能感兴趣的:(MYSQL,数据库,sql,mysql)