3

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

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

4

1 回答 1

1

任何方式的评论中选择而不会导致 MySQL 中的锁定?

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

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

在任一侧使用锁表都没有帮助。

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

如果您不需要复制,那么我会尝试。

于 2013-06-11T14:13:37.203 回答