mysql範圍查找索引失效問題

最近遇見一個問題,有個sql語句,建立了索引,卻不生效

再看一下這個表的索引情況

 

明明有索引的,卻失效了,爲何?百思不得其解啊。。。。

 

那換個思路試試?

 

看見沒,縮小範圍,索引就生效了

那麼我們來分析一下

全表數據

按月查詢數據

按周查詢數據

 

總數據大概60萬條,3月份的數據大概20萬,佔比三分之一,如果是按周,則大概是4萬條,佔比百分之六

所以當查詢3月份的數據時候,mysql認爲數據檢索量已經超過某個閾值,就會自動進行全表掃描,所以索引失效。

具體這個值是多少,目前我還不清楚,如果知道的大牛麻煩告知我一下。

 

解決方案:

修改範圍條件,縮小範圍,儘可能減少觸發全表掃描。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章