2011-09-15 19 views
0

我有一個大小爲MySQL的MyISAM表,現在每天晚上在備份導出期間進入「使用keycache修復」幾個小時。爲什麼MySQL在從4.1升級到5.1之後每晚修復一張表?

這後,才升級的MySQL從4.1到5.1開始(我做的步驟,從4.1到5.0〜5.1)。似乎怪怪的是5.1,但這是服務器上唯一的變化。

有很多這樣的服務器沒有這個問題對其他表的,雖然沒有連一半大。

我試圖克隆/更換用表「CREATE TABLE喜歡」和「插入嗒嗒選擇*」,但這種情況已經改變什麼。這和出口/進口一樣好,對吧?

我甚至嘗試沒有成功阻止這種行爲(或至少加快修復)完全取消全文索引。

還嘗試用myisamchk做手動修復,行爲沒有變化。

什麼是真正奇怪的是,這是一個低活性的數據庫,沒有多少寫每小時讀取。

誰能給我深入瞭解爲什麼發生這種情況和什麼別的我可以調試的更多信息?

將這些鏈接進行更多的研究:

How To Avoid Repair With Keycache?

How can I avoid "repair with keycache" in MySQL?

看起來我需要檢查myisam_max_sort_file_size

但是這並沒有回答我原來的爲什麼問題它首先需要每晚修理。

+0

在這個看看 - 這可能與http://stackoverflow.com/questions/1067367/how-to-avoid -repair-with-keycache –

+0

我認爲你應該將這個報告給http://bugs.mysql.com/ –

+0

這不是一個debian安裝嗎? – jishi

回答

1

嘗試運行CHECK TABLE mytable FOR UPGRADE

http://dev.mysql.com/doc/refman/5.1/en/check-table.html

如果你有問題,那麼做REPAIR TABLE mytable USE_FRM EXTENDED

http://dev.mysql.com/doc/refman/5.1/en/repair-table.html

另外,你可以(在外殼中,MySQL之外)運行此

myisamchk --force --recover --key_buffer_size=512M --sort_buffer_size=64M --read_buffer_size=8M --write_buffer_size=8M /path/to/datadir/*/*.MYI 

(你將需要指定MYI路徑 - 索引文件)

http://dev.mysql.com/doc/refman/5.0/en/myisamchk.html

相關問題