2013-01-12 25 views
0

在我管理的某個網站上,我有一個表設置爲MYISAM,並且它不斷崩潰。自動修復每次都會失敗,所以我必須進入並運行REPAIR TABLE命令。我已經看過可能的解決方案,例如這個:MySQL table is marked as crashed 它看起來很喜歡將表更改爲InnoDB的最佳方式。MyISAM表不斷崩潰。如何去尋找原因或調試它?

但是,該表有一個FULLTEXT索引,如果我可以刪除它,那麼這將是沒有問題的,但該網站運行在一個框架(特別是Elgg),所以我不知道是什麼樣的損害或我可能稍後會遇到問題,所以這可能不是一個好的選擇。

所以對於我的問題:如何找到崩潰的原因?該網站位於Web主機上,並在PHP上運行。

+0

向您的託管服務提供商公司發出問題單,以確定他們的mysqld服務器軟件是否崩潰了很多。如果是這樣,請他們將您的數據庫移動到不同的MySQL服務器機器上。或者,解僱您的託管服務提供商並獲得更好的服務。另外,在Elgg支持論壇上詢問這個問題。除非出現嚴重錯誤,否則不應該發生。 –

+0

你多長時間寫一次數據庫?如果您在桌面上運行大量的INSERT或UPDATE,您可能想要開始使用事務...但是如果您一分鐘沒有運行數百次寫入,我傾向於同意對此,奧爾瓊斯......這真的不應該發生,除非MySQL有什麼問題。 –

+1

MySQL服務器本身是否崩潰?使用SHOW GLOBAL STATUS LIKE'Uptime''檢查服務器的正常運行時間。如果服務器的正常運行時間很短,整個服務器崩潰的可能性就更大了,這可能是一個非常不同的解決方案。 – jeremycole

回答

0

這可能是由於同一個表上的大量連接然後在my.cnf文件中分配的。

由於MyISAM鎖定表並且所有線程都保持在等待列表中。