如果我在同一时间运行10个这样的更新查询:
update table set x = x - 1 where x >= 1 在可重复读取模式下,MySQL是否保证所有这些更新查询一次只运行一次,而不是并行运行(所有这些都同时运行)?
where子句对它是以并行方式运行还是按顺序运行有任何影响吗?
发布于 2017-01-12 16:08:55
它将是连续的,表/记录将被锁定,直到一个给定的更新完成-请阅读下面
对于存储引擎(如MyISAM ),在执行DML或DDL语句时实际执行表级锁,在较早版本的MySQL (5.6.5及更早版本)中,这种影响分区表的语句对整个表强加了一个锁;也就是说,在语句完成之前,所有分区都被锁定。
这里有更多的细节- mysql中的分区和锁定
https://stackoverflow.com/questions/41617421
复制相似问题