有没有办法在MySQL中看到ALTER TABLE语句的进度?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (136)

例如,我发出了一个ALTER TABLE语句,用于在InnoDB表中的MEDIUMTEXT字段上创建索引,该表具有134k行,其中索引的大小为255字节,字段中数据的平均大小为30k。此命令已运行最后15分钟左右(并且是数据库上唯一运行的命令)。我有什么方法可以确定它是否会在接近5分钟,5小时或5天内完成?

提问于
用户回答回答于

这显然是一个非常常见的请求 - 早在2005年就在bugs.mysql.com请求了。它已经存在于Oracle中,并被列为有用的,但“这不是一件简单的事情,所以不要指望它很快就会实现。” 。虽然那是2005年:)

也就是说,那个问过原问题的小伙子后来发布了一个针对MySQL 5.0 的补丁,向后移植到4.1,这可能会帮助你。

用户回答回答于

我能够执行这两个查询并确定要移动的行数。

select count(*) from `myoriginalrable`;
select count(*) from `#sql-1e8_11ae5`;

这比比较磁盘上的文件大小更有帮助,因为从myisam更改为innodb等会更改行大小。

扫码关注云+社区

领取腾讯云代金券