您的位置:首頁技術文章
文章詳情頁

mysql大表如何修改表結構,如增加字段或修改字段類型

瀏覽:101日期:2022-06-13 18:58:04

問題描述

問題解答

回答1:

給 MySQL 大表加字段的思路如下:

創建一個臨時的新表,首先復制舊表的結構(包含索引)

create table new_table like old_table;

給新表加上新增的字段

把舊表的數據復制過來

insert into new_table(filed1,filed2…) select filed1,filed2,… from old_table

刪除舊表,重命名新表的名字為舊表的名字

需要注意下,執行第三步的時候,可能這個過程也需要時間,這個時候有新的數據進來,所以原來的表如果有字段記錄了數據的寫入時間就最好了,可以找到執行這一步操作之后的數據,并重復導入到新表,直到數據差異很小。不過還是會可能損失極少量的數據。

所以,如果表的數據特別大,同時又要保證數據完整,最好停機操作。

回答2:

percona有在線ddl的工具,原理就是使用臨時表加新數據轉移觸發器,可以用一下

国产综合久久一区二区三区