mysql - 长查询执行时间锁表

时间:2013-06-11 14:03:46

标签: mysql database

我有一个mysql数据库,可以从各种资源中收集数据 为了显示来自不同表的一些统计信息,我运行一个长查询,大约需要几分钟才能执行 查询锁定了一些表,因此我无法写入这些表 表是InnoDB引擎。我尝试了几种选择,包括:
1.增加锁定超时
2.添加SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;COMMIT;link
3.向表中添加索引(使查询运行得更快,但仍然会出现锁定超时错误)

如何在不锁定表的情况下执行长查询?

1 个答案:

答案 0 :(得分:1)

来自Any way to select without causing locking in MySQL?中的评论:

  

设置“设置会话事务隔离级别读取已提交;”没有帮助。

     

设置“设置会话事务隔离级别读取未提交;”没有帮助。

     

在任何一方使用锁定表都无济于事。

     

在my.cnf中设置innodb_locks_unsafe_for_binlog = 1解决了这个问题,但我认为缺点是现在我无法在此数据库中使用复制。

如果你不需要复制,那我就试试。