1

我有 2 个连接。第一个连接进行查询:

UPDATE table1 SET column1 = 5;

第二种连接:

SELECT t1.column1, t2.column2
FROM table2 t2
JOIN table1 t1 
     ON t1.column1 = t2.column1

表 1 - InnoDB,表 2 - MyISAM

MySQL 服务器在获得第一个查询后立即获得第二个查询。第二个连接中的查询会等到更新完成吗?

4

1 回答 1

0

假设隔离级别不是SERIALIZABLE(默认为REPEATABLE READ),第二个查询不会等待第一个,而是从回滚日志中读取数据。

您可以通过启动事务、执行更新然后在一个线程中休眠几秒钟并在第一个线程在另一个线程中休眠时执行第二个查询来验证这一点

于 2013-01-03T14:05:47.117 回答