根据MySQL文档,如果任何会话持有表的读取锁定,则另一个会话将为同一个表请求一个写入锁定,必须给出写入锁定以及读取锁定锁等待。MySQL的写入锁定应该暂停读取锁定
我试过了,从两个控制台(Windows 7)连接到MySQL服务器。从第一个控制台锁定表A(读取锁定),然后尝试从第二个控制台锁定同一个表(写入锁定),但第二个控制台只是等待,直到第一个锁定释放。
谁是错的:我还是文档? (MySQL服务器版本5.5.27)
从MySQL官方文档的引文:
“WRITE锁通常具有更高的优先级比读锁,以确保 更新是尽快处理此方法。如果一个 会话获得一个READ锁定,然后另一个会话请求一个WRITE 锁定,则后续的READ锁定请求会一直等到 请求WRITE锁定的会话获得锁定并释放它。
答案是在文档中,写入锁将优先于SUBSEQUENT读取锁... – whosrdaddy