是否可以估计 DROP 语句还剩下多少时间?

lye*_*eaf 6 mysql alter-table query-performance

我做了这个查询:ALTER TABLE dbname.tablename DROP COLUMN columnname它已经运行了几个小时,我想知道它还需要多长时间。

大约有 750m 行。

谢谢 !

如果您需要更多详细信息,我会提供给他们,我不想提供那些没有用的信息

Rol*_*DBA 7

从mysql客户端程序中,没有标准的方法可以看到进度。MariaDB 确实有办法(请参阅我 10 年前的帖子是否有 OPTIMIZE TABLE 进度的进度指示器?

如果你想跟踪它,你可以在 mysql 客户端程序之外进行。

首先,登录mysql并运行SELECT @@global.datadir;

假设它给你/var/lib/mysql

在操作系统中以 root 身份执行以下操作

cd /var/lib/mysql/dbname
ls -l tablename.ibd
Run Code Online (Sandbox Code Playgroud)

这将显示 InnoDB 表的物理文件大小。

现在在同一个数据库文件夹中运行它

ls -lt | grep "sql\-"
Run Code Online (Sandbox Code Playgroud)

或者

ls -lt *sql-*
Run Code Online (Sandbox Code Playgroud)

你应该看到某种临时表以#

当它们各自的文件大小接近时,应该很快就能完成。

如果临时文件很小且未更改,则您的表可能会被锁定,等待读取或写入完成。

  • 不过,只有当“innodb_file_per_table”打开时,这才有效。 (2认同)