我有一个包含 2600 万条记录的表,并且想向其中添加一些列,所以我用添加的列创建了一个新表,然后做了一个
INSERT INTO table_new SELECT (field1,field2) FROM table_old
我被告知这比尝试向现有表中添加列要快。
无论如何,有 2600 万条记录,这需要很长时间,并且使用 MySQL Workbench 监视进程,我看到进程仍在运行(40 小时并且还在计数)。
但是,当我执行 a 时SELECT * FROM table_new
,我还没有看到任何记录。使用 InnoDB,是否要等到整个事务完成后才能看到新表中的 2600 万条记录中的任何一条?或者我应该实时看到插入的记录吗?
我正在查看状态变量Innodb_rows_inserted
,昨天它之前一直在稳定增长,我认为应该代表我从 0 到 2600 万的进度,但现在它固定在 1400 万并且不再实时增加:S,但我的INSERT INTO SELECT
进程仍在运行。我担心出了什么问题。
如何检查一切是否按预期工作?