DjangoがApacheまたは複数のGunicornワーカーで実行されている本番環境では、並行処理の問題が発生します。Djangoでテーブル/行ロックを実行する方法
このように、DjangoのORMはテーブル/行ロックを明示的にサポートしていないことに非常に驚きました。トランザクションは非常に手際よくサポートされていますが、これは並行性の問題の半分しか解決しません。
MySQLのバックエンドでは、Djangoでロックを実行する正しい方法は何ですか?あるいは、Djangoのフレームワークで、それらを不要にする何か他のものがありますか?
ありがとうございます!私の謝罪、私は実際に私が "テーブルロック"と言っていたことを理解していない、私はより一般的に行ロックのような一般的なロックを意味した。あなたが言及したように、テーブルロックは非常に高価なので、行ロックは実際に私がこの特定のケースで探しているものです。 –
@ルークサパンこの場合、隔離レベルを読み上げる必要があります。ほとんどの分離レベルでは、トランザクション内のwrite文は、トランザクションの終了時まで自動的に 'WRITE'ロックを取得します。 – knbk
最初にSELECTを選択し、次に選択した行に基づいて1つ以上の書き込みを実行する状況はどうですか? –