Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有 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 服务器在获得第一个查询后立即获得第二个查询。第二个连接中的查询会等到更新完成吗?
假设隔离级别不是SERIALIZABLE(默认为REPEATABLE READ),第二个查询不会等待第一个,而是从回滚日志中读取数据。
SERIALIZABLE
REPEATABLE READ
您可以通过启动事务、执行更新然后在一个线程中休眠几秒钟并在第一个线程在另一个线程中休眠时执行第二个查询来验证这一点