2017-08-07 62 views
-1

在數據庫中存在少量InnoDB MySQL表。MySQL Innodb表需要超過4小時才能優化

當我試圖進行優化時,它需要超過4個小時,並且仍在進行優化。

我正在使用優化表命令來做到這一點。

請建議。

感謝, 普里亞

+0

爲什麼'OPTIMIZE'? InnoDB通常在不採取明確行動的情況下處理碎片。桌子縮小了多少?你有沒有'innodb_file_per_table'設置? –

+0

@RickJames,innodb_file_per_table已經爲所有表設置。我使用優化來爲碎片採取行動。沒有意識到InnodB在不採取明確行動的情況下照顧碎片。另外,當我試圖優化,4小時後,它還處於進展狀態,所以最終我殺死了這個過程。請建議。 – priya

+0

桌子有多大;必須相當大,需要4個多小時。 'OPTIMIZE'最終會結束。該表可能會縮小一半,但隨着「插入/更新」進入該表,它會很快重新增長。由於再生,「OPTIMIZE」(通常)是徒勞的。 –

回答

0

而是與[pt-online-schema-change][1]OPTIMIZE TABLE使用ALTER TABLE ENGINE INNODB。它仍然需要四個+小時,但至少它不會阻止寫入表格。

+0

肯定的事情。謝謝 – priya