【发布时间】:2020-08-29 17:43:53
【问题描述】:
我知道如果我们有多个并发用户,select_for_update 会锁定正在查询的记录。但是否也会影响对查询记录的评价。
例如,如果用户 A 和用户 B 基于一个布尔变量 'Available' 同时查询表 'Jobs'。 两个用户都想访问可用工作的记录(其中可用 = True)。
用户 A 设法首先排队,他正在访问的记录现在为用户 B 锁定。
如果用户 A 将所有记录都更改为 False,那么用户 B 不会得到任何记录吗?或者他是否获得与用户 A 相同的记录,但可用性等于 False?
另外,select_for_update() 是否适用于 MySQL?还是对并发查询有不同的解决方案?
【问题讨论】:
-
同时避免多个问题,因为它违反了 SO 规则(额外的问题是它是否适用于 MySQL 以及是否有不同的解决方案)
标签: mysql django concurrency mysql-python isolation-level