在大型mysql表中添加新列最快的方式是什麼?在大型mysql表中添加新列
改變表添加列創建完整表的副本,然後用新的創建表替換舊錶。在此過程正在運行時,原始表格可讀,但所有插入和更新都停止。
在大型表格上,副本可能需要很長時間,有什麼方法可以減少它?
在大型mysql表中添加新列最快的方式是什麼?在大型mysql表中添加新列
改變表添加列創建完整表的副本,然後用新的創建表替換舊錶。在此過程正在運行時,原始表格可讀,但所有插入和更新都停止。
在大型表格上,副本可能需要很長時間,有什麼方法可以減少它?
你被困在做ALTER TABLE。有效處理此問題的最佳方法是使用MASTER-MASTER設置。
您可以先修改MASTER1,然後在生產中使用MASTER2。然後你切換,做相反的事情。
不要在活動系統上執行此操作。對於一個活動的系統,請在系統關閉以進行定期維護時執行此操作。
假設一個InnoDB表:
相關問題:http://stackoverflow.com/questions/1645215/how-do-i-add-a-column-to-large-sql-server-table – 2011-05-19 18:38:42
考慮調整innodb_log_file_size(但要小心,請參閱http://www.mysqlperformanceblog.com/2011/07/09/how-to-change-innodb_log_file_size-safely/)和innodb_log_buffer_size。有關更多信息,請參閱此處的答案:http://stackoverflow.com/a/12688184/1148030 – 2012-10-02 10:07:03