2015-12-29 90 views
0

大約1小時前我開始在MyISAM表上進行MySQL優化。這是~20G與250M行。現在它正在創建1G並正在增長的db_name.TMD。Mysql停止運行OPTIMIZE命令?

據我瞭解,MySQL現在正在重新創建我的表的優化副本,如果我的假設是正確的,那麼查殺優化過程應該不會損壞原來的DB ? 另外我該如何殺死優化過程?
如果磁盤空間在優化期間耗盡,會發生什麼?

順便說一句。我剛剛檢查了進程列表和當前狀態:使用keycache進行修復。 還有更多問題: 表我開始優化了:10442MB .MYD文件和9319M.MYI優化過程需要多少空間? 〜.MYD文件大小或MYD + MYI文件大小?

+0

你爲什麼運行'OPTIMIZE'?這幾乎是不需要的。 –

+0

有一個設置可以讓它使用「通過排序修復」。這應該快得多(但不能防止磁盤空間不足)。 –

+0

在第二臺機器上,我改變設置,通過排序修復,只花了大約1小時。 至於爲什麼我會優化,如果它會優化空間純粹的利益。它從MYI文件中做了〜1.5G。 –

回答

1

我已經停止了優化過程多次,沒有不利影響。但是,我確實有可用的備份以防出現問題。

要停止該過程,我使用了KILL process_id,其中process_id取自SHOW PROCESSLIST的結果。

優化所需的空間量取決於表中標記爲刪除的行數。

+0

我也停止了這個過程,因爲我的空間不夠用,但數據庫被標記爲崩潰。將當前複製到另一臺有很多可用空間的計算機上進行修復和優化 –