1、or的使用
在使用索引查询时,如果使用了or,会出现以下情况:
(情况一)or左边是索引查询,or右边不是索引查询
结果:索引查询失效
(情况二)or左边不是索引查询,or右边是索引查询
结果:索引查询失效
(情况三)or左边是索引查询,or右边也是索引查询
结果:索引拆线呢生效
(举例):
(解决方案):
我们只需要对非索引的字段,建立索引即可
2、数据分布影响
(1)情况
如果MySQL评估使用索引的效率会比全表扫描慢,那么MySQL将自动使用全表扫描,放弃索引查询。
(2)实际操作
在这张图中,我们可以清楚的看到,在执行第一条查询语句时, 查询方式为索引查询,在执行第二条查询语句时,查询方式为全表扫描。