最近遇見一個問題,有個sql語句,建立了索引,卻不生效
再看一下這個表的索引情況
明明有索引的,卻失效了,爲何?百思不得其解啊。。。。
那換個思路試試?
看見沒,縮小範圍,索引就生效了
那麼我們來分析一下
全表數據
按月查詢數據
按周查詢數據
總數據大概60萬條,3月份的數據大概20萬,佔比三分之一,如果是按周,則大概是4萬條,佔比百分之六
所以當查詢3月份的數據時候,mysql認爲數據檢索量已經超過某個閾值,就會自動進行全表掃描,所以索引失效。
具體這個值是多少,目前我還不清楚,如果知道的大牛麻煩告知我一下。
解決方案:
修改範圍條件,縮小範圍,儘可能減少觸發全表掃描。