該篇是SQL優化的第4篇。
這裡主要表達我的一個觀點是:不該存在的索引就該干掉,留著礙事
在2014-3-12 15:39:01 -- 15:55:00這段時間內,在某個業務系統我們發現2個問題:
這種現象在數據庫中實際也是很常見,就是某個慢查詢,始作俑者,執行特馬慢,把後面本該很快的查詢給堵住,導致系列長查詢出現
經診斷,我們發現某張表裡存在dateline索引,該索引會讓MySQL優化器選擇錯了執行計劃,導致後續大量SQL擁堵,大概有5000條Query相互堵住
如果不走dateline索引,效果很好,下面對比:
1. 執行計劃對比
2. 執行時間對比:
因此,我們給開發童鞋的反饋是,卡擦掉dateline索引
起初我們並不知道該索引是否還提供給其他Query使用,所以膽戰心驚害怕會引起其他查詢變慢
不過經過這段時間的觀察,實際上,並沒有其他查詢在使用這條索引
索引是好東西,但不要貪哦
Good Luck!