在我們生產的MySQL系統中,我們有一些查詢通常會花費不到2秒的時間執行,但有時它們會運行一分鐘以上。每當其中一個查詢運行很久時,我們檢查索引並發現基數已經落在同一個VARCHAR(25)字段中。我們將MySQL作爲一個具有多個從服務器的主服務器集羣來運行,我們將發現只有該慢服務器系統的基數已經下降,所有其他服務器上的值仍然很高。當價值下降時,它將從約20k-30k(高價值)下降到僅有幾百。運行ANALYZE TABLE命令修復基數並將其備份到20k-30k,並且查詢再次快速運行。是什麼導致MySQL基數降低?
我已經開始監視所有表上的基數,以查看這個值如何隨時間變化。我知道基數會隨着新數據的增加而增加,並且我希望隨着記錄的刪除,它會下降,但是這張表很少會被記錄刪除,但是每次我看它時,這個值都會上下變動。
MySQL的InnoDB的5.5.8
的CentOS 5.7
什麼我應該尋找任何想法? COUT(*)= 402259
http://bugs.mysql.com/bug.php?id=44760? – eggyal
如果不是因爲我使用InnoDB而不是ndbcluster,並且該錯誤在版本5.1中報告並希望我使用的5.5不會出現這樣的舊錯誤,那麼錯誤44760看起來可疑地類似。還是很有趣的。 – LinuxGuru
您是否找到此原因? –