MySQL - 快速複製Table,Table名稱變更及互換
這次,我的需求是,將一個Table的資料倒到一個新Table裡(這是為了做出一個正在運行,一個則是處理中的Table),等處理完,就倒到運行中的Table去。
避免運行中Table在查詢時,會影響到我處理的速度,所以處理與運行的資料表分開方式。
而將處理完的,複製一份變成運行,則就需要快速複製Table的方式。
https://blog.longwin.com.tw/2013/08/mysql-copy-table-command-2013/
參考大大的文章。
語法測試過,可行,但這方法算久,但算是好用,可用的方法,倒過去1100萬筆,一小時內能完成,應該算不錯吧。
- CREATE TABLE new_table LIKE old_table;
- INSERT new_table SELECT * FROM old_table
另外我需要重新命名(有時候Table命名錯誤)
用以下指令
- RENAME TABLE old_table TO new_table;
我需要將即將運行,與運行中的Table互換,使用以下指令。
- RENAME TABLE old_table TO tmp_table,
new_table TO old_table,
tmp_table TO new_table;