如何在不影响生产性能的情况下向10 GB以上的innodb mysql表添加新列?

时间:2015-07-01 01:45:33

标签: mysql innodb database-deadlocks

我直接尝试将3个新列添加到innodb mysql表中,该表超过10GB且在线服务(读/写)。

我像往常一样使用ALTER TABLE xxx add column yyy ...

由于数据规模较大,更改操作非常耗时(超过10分钟)。

问题似乎是它锁定了整个表格,因此在更改时无法提供服务。

我使用的是mysql-5.6.14,它声明支持ADD在线操作。

这是一个常见的问题吗?

我做错了吗?

2 个答案:

答案 0 :(得分:1)

我没看到出了什么问题。建议你在bugs.mysql.com上提交一个bug。

同时,您可以使用pt-online-schema-change进行更改,几乎不会停机。

答案 1 :(得分:0)

来自https://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html#innodb-online-ddl-summary-grid

    Concurrent DML is not allowed when adding an auto-increment column. 

您是否正在添加自动广告列?