MySQL5.7快速修改表中字段長度


在mysql 5.5版本時,商用環境升級,有一個表存在六千多萬數據,升級時需要修改這個表其中一個varchar類型字段的長度,當時用了大概4個多小時,還沒有結束,之后我們系統mysql升級到5.7版本,再一次升級模擬測試中,又修改了該表的字段長度,這次用時為7個多小時,下面是記錄的時間。(進入mysql命令行,執行tee upgrade.log,之后執行的sql都會記錄到該log中,當不需要記錄時,執行notee)
Query OK, 0 rows affected (7 hours 48 min 9.15 sec)
Records: 0  Duplicates: 0  Warnings: 0

雖然沒有sql信息,但該條sql執行時,使用如下命令查看的info信息確實就是在修改該表,所以可確定,這個時間就是這張表的字段修改造成的

show full processlist

在5.7上官網上查看Online DDL Operations介紹,發現添加某個參數后,修改表結構不用拷貝數據,這樣就會大大的節省了時間,改參數為ALGORITHM=INPLACE,但該參數只能用於字段長度變長的情況,否則值應該填寫為copy

mysql> ALTER TABLE db.table MODIFY COLUMN IPADDRESS VARCHAR(60), ALGORITHM=INPLACE;
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

添加了改參數后,修改字段長度的時間從七個多小時一下子就下降到了0.06秒,可以說是瞬間就執行結束,且修改成功

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM