本篇文章給大家分享的是有關(guān)MySQL DDL操作實踐是怎樣的,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供貞豐網(wǎng)站建設(shè)、貞豐做網(wǎng)站、貞豐網(wǎng)站設(shè)計、貞豐網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、貞豐企業(yè)網(wǎng)站模板建站服務(wù),十多年貞豐做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
根據(jù)網(wǎng)上的DDL 樹狀圖,自己copy了一份:/upload/otherpic49/76997.jpg
對不同版本的add index的處理方式,這篇文章寫得不錯:https://www.jb51.net/article/75217.htm
--
相關(guān)實踐
表結(jié)構(gòu):
CREATE TABLE `tt` ( `id` int(11) DEFAULT NULL, `age` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 row in set (0.01 sec)
行數(shù):
data_migration@192.168.7.21:3306 test>select count(*) from tt; +----------+ | count(*) | +----------+ | 12582912 | +----------+ data_migration@192.168.7.21:3306 test>alter table tt add index idx_id(id); Query OK, 0 rows affected (27.49 sec) Records: 0 Duplicates: 0 Warnings: 0
增加id索引
臨時表:只增加了#sql-1e65_68.frm,未增加idb
數(shù)據(jù)量變化:448M -> 676M
data_migration@192.168.7.21:3306 test>alter table tt add name1 varchar(12); Query OK, 0 rows affected (44.72 sec) Records: 0 Duplicates: 0 Warnings: 0
新增字段
臨時表:增加#sql-1e65_68.frm, #sql-ib231-4246726206.ibd,完成時增加#sql-ib255-4246726207.ibd沒有tt.ibd,最后生成tt.idb
數(shù)據(jù)量變化:臨時表一直增加到和新表同樣的數(shù)據(jù)量后,最后完成新表替換,新表 676M->740M
-rw-r----- 1 mysql mysql 740M 1月 8 11:30 #sql-ib231-4246726206.ibd -rw-r----- 1 mysql mysql 8.4K 1月 8 11:06 tt.frm -rw-r----- 1 mysql mysql 676M 1月 8 11:08 tt.ibd [root@dbtest-21 test]# ll -ah -rw-r----- 1 mysql mysql 8.5K 1月 8 11:30 #sql-1e65_68.frm -rw-r----- 1 mysql mysql 740M 1月 8 11:30 #sql-ib231-4246726206.ibd -rw-r----- 1 mysql mysql 8.4K 1月 8 11:06 tt.frm -rw-r----- 1 mysql mysql 676M 1月 8 11:08 tt.ibd [root@dbtest-21 test]# ll -ah -rw-r----- 1 mysql mysql 8.5K 1月 8 11:30 #sql-1e65_68.frm -rw-r----- 1 mysql mysql 740M 1月 8 11:30 #sql-ib231-4246726206.ibd -rw-r----- 1 mysql mysql 676M 1月 8 11:08 #sql-ib255-4246726207.ibd -rw-r----- 1 mysql mysql 8.4K 1月 8 11:06 tt.frm [root@dbtest-21 test]# ll -ah -rw-r----- 1 mysql mysql 8.5K 1月 8 11:30 tt.frm -rw-r----- 1 mysql mysql 740M 1月 8 11:30 tt.ibd data_migration@192.168.7.21:3306 test>alter table tt modify age varchar(20); Query OK, 12582912 rows affected (2 min 36.80 sec) Records: 12582912 Duplicates: 0 Warnings: 0
修改字段
臨時表:增加#sql-1e65_68.frm, #sql-ib231-4246726206.ibd,完成時增加#sql-ib255-4246726207.ibd沒有tt.ibd,最后生成tt.idb
數(shù)據(jù)量變化:臨時表一直增加到和新表同樣的數(shù)據(jù)量后,最后完成新表替換
時間增加
TIPS:
1.新增空字段,磁盤會額外占用新加字段的空間。
2.修改增加的新的空字段類型,可以瞬間完成。
--
algorithm = copy/inplace
copy會一直創(chuàng)建臨時表,inplace在不同場景(rebuild、no-rebuild)下都會創(chuàng)建、不創(chuàng)建臨時表
copy :copy to tmp table,期間不允許DML
inplace :altering table 允許并發(fā)DML,使用了參數(shù)innodb_online_alter_log_max_size緩存新的寫
以上就是MySQL DDL操作實踐是怎樣的,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當(dāng)前名稱:MySQLDDL操作實踐是怎樣的
本文路徑:http://chinadenli.net/article30/gogdpo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、Google、網(wǎng)站營銷、搜索引擎優(yōu)化、、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)