Sta*_*rty 2 mysql innodb delete
我有一个包含大约 10 亿个条目的 innodb 表。我开始了一个删除操作(在索引列上有一个小的 where 条件),它应该删除很多条目,留下大约 1 亿条。删除操作现在运行了 2 天,几个小时前我收到一个错误“在查询过程中丢失了与 mysql 服务器的连接”。mysql processlist 命令显示状态为“正在更新”的删除操作,因此尽管命令行向我显示了此错误,但查询似乎仍在运行。我怎样才能追查到这一点?我基本上不知道它是否仍在删除或卡住。我害怕杀死进程,因为我不想触发回滚。
如果它显示在您的进程列表中,那么它仍在运行。
将来,对于这样的情况,我们要修剪表的 90% 以上,请考虑使用以下方法:
create table new_table like old_table;
insert into new_table (select * from old_table where <what you want to keep>)
rename table old_table to old_table_drop_prep, new_table to old_table;
drop table old_table_drop_prep;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5470 次 |
| 最近记录: |