數(shù)據(jù)庫索引不起作用的場景分析

在數(shù)據(jù)量比較多時,建立合理的索引能降低數(shù)據(jù)查詢的時間,但有些情況下,索引不一定會起作用

無法使用索引的select語句
1.對索引列使用了函數(shù),如:
select * from tb where max(id)=100

2.對索引列使用了'%xx',如:
select * from tb where id like '%1'
需要注意的不是所有使用like關(guān)鍵字的select 語句都無法使用索引,比如
select * from tb where id like '1%'就可以使用索引

3.在where子句中對列進(jìn)行類型轉(zhuǎn)換(其實也是使用到了函數(shù))

4.在組合索引的第1列不是使用最多的列,如在下面3個查詢語句中建立組合索引,按順序包含col2,col1,id列;

select * from tb where id='1' and col1='aa'
select id,sum(col1) from tb group by id
select * from tb where id='2' and col2='bb'

則第一句和第二句無法使用到索引 所以需要注意組合索引的順序

5.在where 子句中使用in關(guān)鍵字的某些句子
當(dāng)在in關(guān)鍵字后面使用嵌套的select語句,將無法使用在該列上定義的索引
如:
select * from tb where id in (select id from tb where ....)
這樣可以用到索引
select * from tb where id in('1','2')

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容