Online DDL 工具:pt-osc
成都創(chuàng)新互聯(lián)公司主營寧河網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP開發(fā),寧河h5小程序開發(fā)搭建,寧河網(wǎng)站營銷推廣歡迎寧河等地區(qū)企業(yè)咨詢
對于 MySQL Online DDL 目前主流的有三種工具:
原生 Online DDL;
pt-osc(online-schema-change),
gh-ost
本文主要講解 pt-online-schema-change 的使用以及三種工具的簡單對比。
一、原理及限制
1.1 原理
1.?創(chuàng)建一個與原表結(jié)構(gòu)相同的空表,表名是?_new?后綴;
2. 修改步驟 1 創(chuàng)建的空表的表結(jié)構(gòu);
3. 在原表上加三個觸發(fā)器:delete/update/insert,用于 copy 數(shù)據(jù)過程中,將原表中要執(zhí)行的語句在新表中執(zhí)行;
4. 將原表數(shù)據(jù)以數(shù)據(jù)塊(chunk)的形式 copy 到新表;
5. rename 原表為 old 表,并把新表 rename 為原表名,然后刪除舊表;
6. 刪除觸發(fā)器。
use studyDBExam;
create table Student_info(
User_ID int primary key auto_increment,
Username varchar(50) ,
Password varchar(20),
Class_name varchar(50),
Student_name varchar(50),
Student_sex varchar(50),
Student_sex varchar(50),
Student_sex varchar(50),
Student_sex varchar(50)
)
利用代碼建立。
先建立表結(jié)構(gòu)(可以理解為表的列名,也就是字段名)在實際生產(chǎn)過程中,表結(jié)構(gòu)是需要經(jīng)過精心設(shè)計的。
可以看到表t3中的表結(jié)構(gòu)中含有兩個字段:id,username;兩個字段的值都不允許為空,id字段為主鍵。記錄的插入與查找數(shù)據(jù)庫中的表記錄對應(yīng)著表中的行。
用sql語句創(chuàng)建表結(jié)構(gòu)啊,首先創(chuàng)建一個新的數(shù)據(jù)庫,命名為XXXXX,然后創(chuàng)建表AAA:
create table AAA(
id int(11) 自增 無符號
name varchar(50)
......
)
既然是無限分類,那分類其實就是同等的
所以first字段去掉,abcd這些放到name,
根據(jù)pid=0來判斷是否第一層,
其它字段照舊就可以了