MySQL SQL最佳化:礙手礙腳的索引

來源:互聯網
上載者:User

該篇是SQL最佳化的第4篇。

這裡主要表達我的一個觀點是:不該存在的索引就該幹掉,留著礙事

在2014-3-12 15:39:01 -- 15:55:00這段時間內,在某個業務系統我們發現2個問題:
1. 資料庫存在大量的查詢等待
2. 伺服器的存在較嚴重的io等待



這種現象在資料庫中實際也是很常見,就是某個慢查詢,始作俑者,執行特馬慢,把後面本該很快的查詢給堵住,導致系列長查詢出現

經診斷,我們發現某張表裡存在dateline索引,該索引會讓MySQL最佳化器選擇錯了執行計畫,導致後續大量SQL擁堵,大概有5000條Query相互堵住

如果不走dateline索引,效果很好,下面對比:

1. 執行計畫對比




2. 執行時間對比:




因此,我們給開發童鞋的反饋是,卡擦掉dateline索引

起初我們並不知道該索引是否還提供給其他Query使用,所以膽戰心驚害怕會引起其他查詢變慢

不過經過這段時間的觀察,實際上,並沒有其他查詢在使用這條索引


索引是好東西,但不要貪哦


Good Luck!



相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.