我正在使用MySQL 5.6(以及它的Online-DDL功能)来生成一些就地的alter table操作,比如"ADD COLUMN".我看到LOCK参数默认为允许的最高并发级别(对于ADD COLUMN,这应该是"NONE")但是ALGORITHM参数的默认行为是什么?在文档中,它说"ALGORITHM = DEFAULT是相同的,根本没有指定ALGORITHM子句." 但这没有用,因为它没有说ALGORITHM = DEFAULT等于什么.
http://dev.mysql.com/doc/refman/5.6/en/alter-table.html
谁知道?
默认值取决于您尝试应用的更改类型.
某些更改可以使用ALGORITHM = INPLACE,因此这是它们的默认值.其他更改永远不能使用在线DDL,因此它们的默认值为ALGORITHM = COPY.例如,无法在适当的位置更改数据类型或删除主键.
请参阅https://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html.它们记录了如何处理不同的操作,默认情况下"Inplace"列中的"No"使用ALGORITHM = COPY,如果尝试使用ALGORITHM = INPLACE则失败.
您可以强制操作使用ALGORITHM = COPY,即使它可以在其中完成其工作,但如果无法执行,则无法请求操作使用ALGORITHM = INPLACE.
| 归档时间: |
|
| 查看次数: |
2897 次 |
| 最近记录: |