6

我有一个Django项目,它使用MySQL v5.5后端和InnoDB存储。
为了避免数据库中的竞争条件更新,我使用 select_for_update 来锁定行。现在如果这个锁保持很长时间,任何对锁定行的查询都会超时。
我想通过以下选项之一避免这种情况:

  1. 跳过锁定的行,类似于SKIP LOCKED选项。
  2. 如果您正在查询的某些行被锁定,则立即返回,类似于NOWAIToption。
  3. 减少特定查询的锁定等待超时时间。

如何使用 Django ORM 执行这些操作?

4

1 回答 1

2

来自Django 文档

您还可以使用 select_for_update(skip_locked=True) 忽略锁定的行

于 2019-10-09T14:59:09.700 回答