簡體   English   中英

使用mysql innodb重命名巨型表時的最佳實踐,當已存在同名表時

[英]Best practice with mysql innodb to rename huge table when table with same name already exist

我使用Mysql 5.5 .. + INNODB和Windows服務器。

案例(簡單,然后真實案例):

我有2個表1GB,名稱為new_carcar表為1GB。

我每10個小時用new_car表替換car表不是手動(自動代碼) - 快速(真正的網站數據)很重要。

我讀過(比如在innodb中刪除它的問題): http//www.mysqlperformanceblog.com/2011/02/03/performance-problem-with-innodb-and-drop-table/

解決方法1:

DROP TABLE car;
RENAME TABLE new_car TO car;

解決方案2(最后放棄 - 可能不會阻止表訪問丟棄期間發生的情況):

RENAME TABLE car TO temp_car;
RENAME TABLE new_car TO car;
DROP TABLE temp_car;

解決方案3(截斷快速刪除表並創建空表然后可能會非常快速地刪除操作):

TRUNCATE TABLE car;
DROP TABLE car;
RENAME TABLE new_car TO car; 

Solution4:

RENAME TABLE car TO temp_car;
RENAME TABLE new_car TO car;
TRUNCATE TABLE temp_car;
DROP TABLE temp_car;

哪種解決方案最好,為什么還是請寫其他更好的解決方案?

謝謝

我不明白為什么你會把桌子丟棄。 你總是想要那兩張桌子而你(我假設要重新填滿New_Car表...

RENAME TABLE car TO temp_car;
RENAME TABLE new_car TO car;
TRUNCATE TABLE temp_car;
RENAME TABLE temp_car TO new_car;
RENAME TABLE car TO temp_car, new_car TO car;
TRUNCATE TABLE temp_car;
DROP TABLE temp_car;

使用替換它需要5分鍾或使用負載infile批量它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM