MySQL5.6OnlineDDL在线状态是怎么样的

这篇文章将为大家详细讲解有关MySQL5.6 Online DDL在线状态是怎么样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

创新互联是工信部颁发资质IDC服务器商,为用户提供优质的成都二枢服务器租用托管服务

Yes*和No*表明结果依赖于其他一些附加条件:

执行操作 允许ALGORITHM=INPLACE    

是否拷贝表   

允许并发DML     

允许并发查询

备注和注意事项

create index

add index

Yes*

No*

Yes

Yes

对于全文索引,有一些限制,具体看下一行。目前,该操作不是在原地执行,需要拷贝表.

add fulltext index

Yes

No*

No

Yes

创建第一个全文索引涉及到拷贝表,除非有使用FTS_DOC_ID列。后面的全文索引则在原地执行。

drop index 

Yes

No

Yes

Yes

 

optimize table

Yes

Yes

Yes

Yes

在MySQL5.6.17里使用 ALGORITHM=INPLACE.

如果设置old_alter_table=1或使用mysqld –skip-new选项,则使用 ALGORITHM=COPY.

如果表使用了全文索引,则 ALGORITHM=INPLACE不适用

set default value for  column

Yes

No

Yes

Yes

修改.frm文件,不涉及数据文件

change auto-increment value

Yes

No

Yes

Yes

修改存储到内存的一个值,不修改数据文件

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

允许并发DML,保持相同的数据类型,仅改变字段名

add  column

Yes

Yes

Yes*

Yes

增加auto-increment字段时不允许DML操作. 

虽然ALGORITHM=INPLACE可以允许, 

但是数据要重组,代价比较昂贵.

drop column

Yes

Yes

Yes

Yes

虽然ALGORITHM=INPLACE可以允许,

但是数据要重组,代价比较昂贵.

reorder columns

Yes

Yes

Yes

Yes

虽然ALGORITHM=INPLACE可以允许,

但是数据要重组,代价比较昂贵.

change ROW_FORMAT

property

Yes

Yes

Yes

Yes

虽然ALGORITHM=INPLACE可以允许,

但是数据要重组,代价比较昂贵.

change KEY_BLOCK_SIZE 

property

Yes

Yes

Yes

Yes

虽然ALGORITHM=INPLACE可以允许,

但是数据要重组,代价比较昂贵.

make column null 

Yes

Yes

Yes

Yes

虽然ALGORITHM=INPLACE可以允许,

但是数据要重组,代价比较昂贵.

make cplumn not null 

Yes*

Yes

Yes

Yes

当SQL_MODE为strict_all_tables,如果执行的列包含null,则会执行失败。

 

虽然ALGORITHM=INPLACE可以允许,

但是数据要重组,代价比较昂贵.

change data type 

of column

No

Yes

Yes

Yes

 

add primary key

Yes*

Yes

Yes

Yes

虽然ALGORITHM=INPLACE可以允许,

但是数据要重组,代价比较昂贵.

如果列必须转换为非空的条件下,

ALGORITHM=INPLACE是不允许的。

drop primary key 

and add other

Yes

Yes

Yes

Yes

当在同一个alter table新增主键时ALGORITHM=INPLACE是允许的.数据要重组,因此代价比较昂贵.

 

drop primary key

No

Yes

No

Yes

删除主键但是又不新增主键是被限制的

convert character set

No

Yes

No

Yes

如果新的字符编码不同将会重建表

specify character set

No

Yes

No

Yes

如果新的字符编码不同将会重建表

rebulid with 

force option

Yes

Yes

Yes

Yes

在MySQL5.6.17里使用 ALGORITHM=INPLACE.

如果设置old_alter_table=1或使用mysqld –skip-new选项,则使用 ALGORITHM=COPY.

如果表使用了全文索引,则 ALGORITHM=INPLACE不适用

rebulid with 

“null”

 

alter table …

engine=innodb

Yes

Yes

Yes

Yes

在MySQL5.6.17里使用 ALGORITHM=INPLACE.

如果设置old_alter_table=1或使用mysqld –skip-new选项,则使用 ALGORITHM=COPY.

如果表使用了全文索引,则 ALGORITHM=INPLACE不适用

关于MySQL5.6 Online DDL在线状态是怎么样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

本文题目:MySQL5.6OnlineDDL在线状态是怎么样的
文章地址:https://www.cdcxhl.com/article32/geidsc.html

成都网站建设公司_创新互联,为您提供微信公众号Google虚拟主机搜索引擎优化营销型网站建设移动网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

小程序开发