MySQL一次更新一行吗?

时间:2017-01-12 15:47:58

标签: mysql sql sql-update atomic isolation

如果我在同一时间运行十个这样的更新查询:

update table set x = x - 1 where x >= 1 

在可重复读取模式下,MySQL是否保证所有这些更新查询一次运行一个,而不是并行运行(所有这些都同时运行)?

P.S:where子句是否对并行或顺序样式有影响吗?

1 个答案:

答案 0 :(得分:1)

它将是连续的,表/记录将被锁定,直到给定的更新完成 - 请阅读下面的

  

对于实际执行表级的MyISAM等存储引擎   在执行DML或DDL语句时锁定,如旧语句中的这种语句   影响分区表的MySQL(5.6.5及更早版本)版本   对整个桌子施加了锁定;也就是说,所有分区都是   锁定直到声明完成

此处有更多详情 - Partition and locking in mysql