MySQL InnoDB锁定

时间:2012-12-27 03:10:37

标签: locking innodb myisam

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

UPDATE table1 SET column1 = 5;

第二次连接:

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

table1 - InnoDB,table2 - MyISAM

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

1 个答案:

答案 0 :(得分:0)

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

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