【发布时间】:2017-05-27 19:27:35
【问题描述】:
如果我同时运行十个这样的更新查询:
update table set x = x - 1 where x >= 1
在可重复读取模式下,MySQL 是否保证所有这些更新查询一次运行一个,而不是并行运行(所有同时)?
P.S: where 子句对并行还是顺序运行有影响吗?
【问题讨论】:
-
对于可重复阅读模式,您的意思是翻译设置为可重复阅读。请参阅dev.mysql.com/doc/refman/5.7/en/set-transaction.html???
-
没有 WHERE 语句只过滤掉需要更新的记录。查询是否并行运行没有任何影响
-
读取时使用的锁定应该对 UPDATE 查询没有影响。读取与更新或插入不同。它可能会影响正在读取的其他查询的执行方式,但如果您的所有查询都是更新,则不会影响结果。
标签: mysql sql sql-update atomic isolation