开发者社区 问答 正文

有什么选择方法而不会导致锁定MySQL?

查询:

SELECT COUNT(online.account_id) cnt from online; 但是联机表也会被事件修改,因此我经常可以通过运行看到锁show processlist。

MySQL中是否有任何语法可以使select语句不引起锁定?

而且我在上面已经忘记了它在MySQL从数据库中。

在我添加到my.cnf:transaction-isolation = READ-UNCOMMITTED slave后会遇到错误:

错误“无法进行二进制日志记录。消息:对于查询中的二进制记录模式“ STATEMENT”,InnoDB中的事务级别“ READ-UNCOMMITTED”不安全

那么,有兼容的方法吗?

展开
收起
保持可爱mmm 2020-05-10 20:11:10 330 分享 版权
1 条回答
写回答
取消 提交回答
  • 找到标题为“ MYSQL WITH NOLOCK”的文章

    https://web.archive.org/web/20100814144042/http://sqldba.org/articles/22-mysql-with-nolock.aspx

    在MS SQL Server中,您可以执行以下操作:

    SELECT * FROM TABLE_NAME WITH (nolock) 和MYSQL等效的是

    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ; SELECT * FROM TABLE_NAME ; SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ ; 编辑

    迈克尔·米尔(Michael Mior)建议以下内容(来自评论)

    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ; SELECT * FROM TABLE_NAME ; COMMIT ;来源:stack overflow

    2020-05-10 20:11:37
    赞同 展开评论