首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >暂停和恢复运行mysql查询

问暂停和恢复运行mysql查询
EN

Stack Overflow用户
提问于 2011-11-23 20:40:34
回答 3查看 6.9K关注 0票数 6

我得到了相当慢的查询(实际上这是从mysql.dump加载数据)。现在,我想检查一下已经加载了多少行。

代码语言:javascript
复制
select count(*) from my_table;

就数据加载而言,my_table是锁定的,所以在加载转储之前我不能执行这个sql。

代码语言:javascript
复制
Cmd       ID   State               User   Host           DB      Time   Query                           
Query     191  update              root   localhost      rehub   00:09  INSERT INTO `my_table` VALUES ...
Query     189  Waiting for table   root   localhost      rehub   06:25  select count(*) from my_table

那么有没有办法暂停查询191,执行查询189,然后恢复查询191?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-23 20:50:51

不,没有暂停查询的方法。

如果您正在进行批量加载工作,则可能需要使用每几千行提交一次的批量加载程序。

此外,使用MyISAM而不是InnoDB可以缓解这个问题。对于您主要不关心事务完整性的批量处理,MyISAM是一个很好的选择。

票数 4
EN

Stack Overflow用户

发布于 2011-11-23 21:54:16

引用manual的话:

默认情况下,--opt所代表的所有选项也是打开的,因为--opt在默认情况下是打开的。

因此,当您将–-extended-insert=FALSE和--add-locks=FALSE添加到mysqldump选项时,您的选择计数(*)应该可以工作。根据你的情况,注意你的数据库引用完整性的问题。它会减慢导入的速度!

票数 2
EN

Stack Overflow用户

发布于 2011-11-23 21:35:09

您仍然可以使用show innodb status获取插入的记录数

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8242353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档