Any way to select without causing locking in MySQL?

后端 未结 8 1642
执笔经年
执笔经年 2020-11-22 15:21

Query:

SELECT COUNT(online.account_id) cnt from online;

But online table is also modified by an event, so frequently I can see lock by runn

8条回答
  •  不知归路
    2020-11-22 15:26

    Found an article titled "MYSQL WITH NOLOCK"

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

    in MS SQL Server you would do the following:

    SELECT * FROM TABLE_NAME WITH (nolock)
    

    and the MYSQL equivalent is

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

    EDIT

    Michael Mior suggested the following (from the comments)

    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
    SELECT * FROM TABLE_NAME ;
    COMMIT ;
    

提交回复
热议问题