我的 Mysql 设置有问题:我制作的每个更改表需要大约 5 分钟才能完成,即使该表完全为空。

有时查询甚至会因超时而失败(错误 2013:在查询 SQL 语句期间丢失与 MySQL 服务器的连接:ALTER TABLE ...)。

此外,该表位于测试数据库中,因此不会同时进行其他查询。

我在 12 个 CPU 的机器上使用 Mysql 5.7,所以我认为硬件不是问题。

你知道如何解决这个问题吗?

谢谢你的时间

编辑:
运行 show full processlist

Altering table  ALTER TABLE ...
Waiting for table metadata lock ALTER TABLE ...

PS:这种行为发生在任何表上,以及每个 ALTER TABLE 语句

编辑:
问题在Mysql 5.7.8中解决

最佳答案

在此处尝试您的查询。

https://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html

如果查询中有任何不好的地方,您会发现它。

别的

完全转储和重新加载比改变更快。

IE。

- Create a new table (using the structure of the current table) with the new column(s) included.

- execute a INSERT INTO new_table SELECT (column1,..columnN) FROM current_table;

- rename the current table

- rename the new table using the name of the current table.

关于mysql - 非常慢的更改表(即使没有行),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31409254/

10-10 18:29
查看更多