您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(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ò),可以把它分享出去讓更多的人看到。
免責(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)容。