如果我在同一时间运行十个这样的更新查询:
update table set x = x - 1 where x >= 1
在可重复读取模式下,MySQL是否保证所有这些更新查询一次运行一个,而不是并行运行(所有这些都同时运行)?
P.S:where子句是否对并行或顺序样式有影响吗?
答案 0 :(得分:1)
它将是连续的,表/记录将被锁定,直到给定的更新完成 - 请阅读下面的
对于实际执行表级的MyISAM等存储引擎 在执行DML或DDL语句时锁定,如旧语句中的这种语句 影响分区表的MySQL(5.6.5及更早版本)版本 对整个桌子施加了锁定;也就是说,所有分区都是 锁定直到声明完成
此处有更多详情 - Partition and locking in mysql