有時我們的表中的某些索引被破壞,數據庫開始消耗100%的CPU負載,並在一段時間內完全卡住。即使簡單的查詢也無法完成,重新啓動也無濟於事。InnoDB:破壞和修復索引
我發現的是要麼逐個刪除並重新創建索引(這可能需要很長的時間和很多調查),或者只是在可疑表上調用alter table mytable engine=innodb;
。這實際上很好,它修復了一切,一切恢復正常。但我不知道背景中究竟發生了什麼,以及它爲什麼會有所幫助。另外 - 它會幫助每月手動進行一次嗎?自動化這是一個好主意嗎?有沒有辦法做一些數據庫健康檢查?
您是否正在運行最新版本的MySQL?你有沒有試過一個完整的轉儲,從零開始恢復你的數據庫?你能在任何其他機器上重現問題嗎?你可能正在處理有問題的軟件或有缺陷的硬件,例如一大堆內存。 – tadman
是的,這大概發生一年,最後一次發生在不同的機器上。我正在Debian上運行最新的Percona。 –
值得嘗試一下MariaDB和MySQL,看看它是否是問題和/或聯繫Percona支持。 – tadman