数据库调优教程(九)添加了索引但不被使用的几种常见可能

2015-11-21 02:01:15 · 作者: · 浏览: 5

三、 索引

6. 添加了索引但不被使用的几种常见可能

上一讲聊了什么时候不要使用索引,但有时候使用了也不见得会被使用。

下面是几种添加了索引但不被使用的情况

1) 多列索引查询条件没有使用最左边的字段

对于创建的多列索引,如果查询条件没有使用最左边的列,索引就不会被使用。

多列索引:一个索引对应多个列

比如

我创建了这么个多列索引

create index index_deptno_loc on dept (deptno,loc);

如果where语句中有deptno则会使用索引,否则不使用

如下

\

2) 如果条件中有or

只要条件中有一个字段没有添加索引,则不会使用索引<??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+IDwvcD4KPHA+PHN0cm9uZz4zKSAgICDA4NDNsru21NOmPC9zdHJvbmc+PC9wPgo8cD6xyLe9y7WjrMjnufvB0MDg0M3Kx9fWt/u0rqOsxMfSu7ao0qrU2sz1vP7W0L2ryv2+3cq508PS/brF0v3Tw8bwwLSho7fx1PKyu8q508PL99L9PC9wPgo8cD4gPC9wPgo8cD48c3Ryb25nPjQpICAgIG15c3Fs08W7r8b3tcS+9raoPC9zdHJvbmc+PC9wPgo8cD7I57n7bXlzcWy5wLzGyrnTw8irse3JqMPo0qqxyMq508PL99L9v+yjrNTysrvKudPDy/fS/TwvcD4KPHA+IDwvcD4KPHA+PHN0cm9uZz7X7rrz0ru146Os0rLKx7HK1d+40Mrc1+7J7rXE0ru14zwvc3Ryb25nPjwvcD4KPHA+PHN0cm9uZz48YnI+Cjwvc3Ryb25nPjwvcD4KPHA+PHN0cm9uZz41KSAgICBsaWtloa4lYWFhoa+yu7vhyrnTw7W9y/fS/Twvc3Ryb25nPjwvcD4KPHA+1rvSqsSjuv2y6dGvtcTEo7r9JiMyMDU0MDvU2tfWt/u0rseww+ajrNTysru74cq508PL99L9oa4lYWFhoa+6zaGuX2FhYaGvtryyu7vho6E8L3A+CjxwPjwvcD4KPHA+yOfPwjwvcD4KPGJyPgo8cD48aW1nIHNyYz0="https://www.cppentry.com/upload_files/article/57/1_rifcl__.png" alt="">

应该说这是Mysql给程序员们开的一个玩笑。要是我的表数据量很大,而且又需要使用like’%%’这样的模糊查询来检索时,该怎么办??

下一章,笔者将会给大家分享解决这个问题的N种方法!