溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL5.6 Online DDL在線狀態(tài)是怎么樣的

發(fā)布時(shí)間:2021-11-16 09:18:18 來源:億速云 閱讀:190 作者:柒染 欄目:MySQL數(shù)據(jù)庫

這篇文章將為大家詳細(xì)講解有關(guān)MySQL5.6 Online DDL在線狀態(tài)是怎么樣的,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

Yes*和No*表明結(jié)果依賴于其他一些附加條件:

執(zhí)行操作 允許ALGORITHM=INPLACE    

是否拷貝表   

允許并發(fā)DML     

允許并發(fā)查詢

備注和注意事項(xiàng)

create index

add index

Yes*

No*

Yes

Yes

對(duì)于全文索引,有一些限制,具體看下一行。目前,該操作不是在原地執(zhí)行,需要拷貝表.

add fulltext index

Yes

No*

No

Yes

創(chuàng)建第一個(gè)全文索引涉及到拷貝表,除非有使用FTS_DOC_ID列。后面的全文索引則在原地執(zhí)行。

drop index 

Yes

No

Yes

Yes

 

optimize table

Yes

Yes

Yes

Yes

在MySQL5.6.17里使用 ALGORITHM=INPLACE.


如果設(shè)置old_alter_table=1或使用mysqld –skip-new選項(xiàng),則使用 ALGORITHM=COPY.

如果表使用了全文索引,則 ALGORITHM=INPLACE不適用

set default value for  column

Yes

No

Yes

Yes

修改.frm文件,不涉及數(shù)據(jù)文件

change auto-increment value

Yes

No

Yes

Yes

修改存儲(chǔ)到內(nèi)存的一個(gè)值,不修改數(shù)據(jù)文件

add  foreign key constraint

Yes*

No*

Yes

Yes

禁用foreign_key_checks,則可以避免拷貝表

drop  forgien key constraing

Yes

No

Yes

Yes

foreign_key_checks可以禁用或開啟

rename  column

Yes*

No*

Yes*

Yes

允許并發(fā)DML,保持相同的數(shù)據(jù)類型,僅改變字段名

add  column

Yes

Yes

Yes*

Yes

增加auto-increment字段時(shí)不允許DML操作. 

雖然ALGORITHM=INPLACE可以允許, 

但是數(shù)據(jù)要重組,代價(jià)比較昂貴.

drop column

Yes

Yes

Yes

Yes

雖然ALGORITHM=INPLACE可以允許,

但是數(shù)據(jù)要重組,代價(jià)比較昂貴.

reorder columns

Yes

Yes

Yes

Yes

雖然ALGORITHM=INPLACE可以允許,

但是數(shù)據(jù)要重組,代價(jià)比較昂貴.

change ROW_FORMAT

property

Yes

Yes

Yes

Yes

雖然ALGORITHM=INPLACE可以允許,

但是數(shù)據(jù)要重組,代價(jià)比較昂貴.

change KEY_BLOCK_SIZE 

property

Yes

Yes

Yes

Yes

雖然ALGORITHM=INPLACE可以允許,

但是數(shù)據(jù)要重組,代價(jià)比較昂貴.

make column null 

Yes

Yes

Yes

Yes

雖然ALGORITHM=INPLACE可以允許,

但是數(shù)據(jù)要重組,代價(jià)比較昂貴.

make cplumn not null 

Yes*

Yes

Yes

Yes

當(dāng)SQL_MODE為strict_all_tables,如果執(zhí)行的列包含null,則會(huì)執(zhí)行失敗。


 

雖然ALGORITHM=INPLACE可以允許,

但是數(shù)據(jù)要重組,代價(jià)比較昂貴.

change data type 

of column

No

Yes

Yes

Yes

 

add primary key

Yes*

Yes

Yes

Yes

雖然ALGORITHM=INPLACE可以允許,

但是數(shù)據(jù)要重組,代價(jià)比較昂貴.

如果列必須轉(zhuǎn)換為非空的條件下,

ALGORITHM=INPLACE是不允許的。

drop primary key 

and add other

Yes

Yes

Yes

Yes

當(dāng)在同一個(gè)alter table新增主鍵時(shí)ALGORITHM=INPLACE是允許的.數(shù)據(jù)要重組,因此代價(jià)比較昂貴.

 

drop primary key

No

Yes

No

Yes

刪除主鍵但是又不新增主鍵是被限制的

convert character set

No

Yes

No

Yes

如果新的字符編碼不同將會(huì)重建表

specify character set

No

Yes

No

Yes

如果新的字符編碼不同將會(huì)重建表

rebulid with 

force option

Yes

Yes

Yes

Yes

在MySQL5.6.17里使用 ALGORITHM=INPLACE.


如果設(shè)置old_alter_table=1或使用mysqld –skip-new選項(xiàng),則使用 ALGORITHM=COPY.

如果表使用了全文索引,則 ALGORITHM=INPLACE不適用

rebulid with 

“null”

 

alter table …

engine=innodb

Yes

Yes

Yes

Yes

在MySQL5.6.17里使用 ALGORITHM=INPLACE.


如果設(shè)置old_alter_table=1或使用mysqld –skip-new選項(xiàng),則使用 ALGORITHM=COPY.

如果表使用了全文索引,則 ALGORITHM=INPLACE不適用

關(guān)于MySQL5.6 Online DDL在線狀態(tài)是怎么樣的就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI