2015-10-13 47 views
6

我想改變的生產表大約700 Gb。我想從該表中刪除FK。 Mysql版本是5.1.61-log。改變一個大型的mysql表700 gb

我發現了以下選項:

PT-在線模式的變化:改變一個表的結構不阻塞讀取或寫入。這看起來在更改時間方面效率最高。這還通過將表副本分成塊來維護服務器負載,並在服務器負載較高的情況下暫停數據複製過程。

工具對我來說唯一的問題是服務器上的可用空間是450 GB,並且沒有其他驅動器的空間。該工具在大約700 GB的表格副本上工作。

升級到Mysql 5.6:使用5.6的ONLINE DDL功能,大多數ALTER類型不會阻止對正在更改的表的寫操作。它也支持添加/刪除外鍵約束,而不需要全表副本。

但我不確定它是如何處理服務器負載和需要多少時間來進行修改。

是否有任何其他選項,如pt-online-schema-change,它不需要複製表? 有關Mysql 5.6的ONLINE DDL的任何經驗/評論?

在此先感謝!

+3

您可能會在dba.stackexchange.com上得到比這裏更好的答案。這更像是一個DBA,而不是開發人員的問題。 – Shadow

+0

建議將此問題遷移到dba.stackexchange.com。 –

回答

0

這裏是關於online DDL

這是就地,也不需要複製表的鏈接,官方文檔。我在sysbench測試期間刪除了FK(順便說一句,隨時在本地5.6安裝中重現測試)