postgreSQLデータベースのカウンターを適切にインクリメントするにはどうすればよいですか?

ジョン・ドウ

アプリに「Like / Unlike」システムを実装したいとします。後で並べ替えるために、それぞれのように数える必要があります。現在の値+1を挿入するだけでいいですか?単純すぎると思います。

2人のユーザーが同時にクリックした場合はどうなりますか?カウンターが邪魔されないようにするにはどうすればよいですか?

単純なデコレータでトランザクションを実装する必要があると読みました@transaction.atomicが、これで問題を処理できるかどうか疑問に思います。

トランザクションは、1人のユーザーによってトリガーされる操作の「ブロック」を実行するように設計されていますが、私の場合、複数のリクエストを同時に処理し、カウンターを安全に更新できる必要があります。

何かアドバイスはありますか?

サジザビエル

F()式を使用できます。

content.likes_count = F('likes_count') + 1
content.save()

したがって、操作はPythonではなくデータベースで実行されます。

djangoのドキュメントから

F()のもう1つの便利な利点は、Pythonではなくデータベースでフィールドの値を更新することで競合状態が回避されることです。

2つのPythonスレッドが上記の最初の例のコードを実行する場合、一方のスレッドは、もう一方のスレッドがデータベースからフィールドの値を取得した後、フィールドの値を取得、インクリメント、および保存できます。2番目のスレッドが保存する値は、元の値に基づきます。最初のスレッドの作業は単に失われます。

データベースがフィールドの更新を担当している場合、プロセスはより堅牢になります。save()またはupdate()が実行されたときに、データベース内のフィールドの値に基づいてではなく、データベース内のフィールドの値に基づいてのみフィールドが更新されます。インスタンスが取得されたときの値。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ガベージコレクションを適切に処理し、カスタムオブジェクトポインタのコレクションを使用してメモリリークを回避するにはどうすればよいですか?

分類Dev

データベースのonclickを更新するインクリメントボタンをCodeigniterで作成するにはどうすればよいですか?

分類Dev

Flutterの特定のリストアイテムのカウンターをインクリメントするにはどうすればよいですか?

分類Dev

1 つのデータベース リクエストで異なる mysql 行をカウントするにはどうすればよいですか?

分類Dev

ドメインとサブドメインに適切なデータベース構造を作成するにはどうすればよいですか?

分類Dev

ボタンをクリックしてカウンターの値をインクリメントするにはどうすればよいですか?

分類Dev

MySQLデータベースでこの種の自動インクリメントを実現するにはどうすればよいですか?

分類Dev

mySQLデータベースのエントリをより速くカウントするにはどうすればよいですか?

分類Dev

データベース関数を使用するYiiでクエリ結果をカウントするにはどうすればよいですか?

分類Dev

カウンターインクリメントでデフォルト値を変更するにはどうすればよいですか?

分類Dev

Azure DocumentDBアカウント内のすべてのデータベースのリストを取得するにはどうすればよいですか?

分類Dev

他のアプリ (Windows) でマウス イベントを適切にオーバーライドするにはどうすればよいですか?

分類Dev

最初のアクションで配列リストからデータを適切に取得するにはどうすればよいですか?

分類Dev

Android SQLiteデータベースで自動インクリメントIDを1から再開するにはどうすればよいですか?

分類Dev

sqlalchemyのカスタムクエリのパラメーターにリストをバインドするにはどうすればよいですか?

分類Dev

Dockerを使用して「ボリュームストアメタデータデータベースを開いているとき」のデーモンタイムアウトエラーを解決するにはどうすればよいですか?

分類Dev

カスタムデータをJQueryクリックイベントに送信するにはどうすればよいですか?

分類Dev

.netコアプロジェクトのSignalRCoreでpostgresqlデータベースをリッスンするにはどうすればよいですか?

分類Dev

データベースからAngularのドロップダウンリストにデータを取得するにはどうすればよいですか?

分類Dev

imdbリストファイルをpostgresqlデータベースにインポートするにはどうすればよいですか?

分類Dev

メールリストをドメインでフィルタリングし、JavaScriptでカウントするにはどうすればよいですか?

分類Dev

クラスター内の Google マップ マーカーでクリック イベントを作成するにはどうすればよいですか?

分類Dev

カスタムdjangoコメントにマークダウンエディターを追加するにはどうすればよいですか?

分類Dev

R散布図のデータポイントにggplotでより適切にラベルを付けるにはどうすればよいですか?

分類Dev

生のSQLクエリを実行せずにActiverecordにデータベースドメインを追加するにはどうすればよいですか?

分類Dev

これからサイクルのカウンターを理解によってリストに実装するにはどうすればよいですか?

分類Dev

sqlite(PDO)データベースデータをハイチャートコードにリンクするにはどうすればよいですか?

分類Dev

Document-Dbデータベース内のすべてのドキュメントを読み取らずにカウントが必要な場合に、Linqを使用してIQueryableクエリを構築するにはどうすればよいですか?

分類Dev

インメモリSQLiteデータベースで行レベルのロックを実現するにはどうすればよいですか?

Related 関連記事

  1. 1

    ガベージコレクションを適切に処理し、カスタムオブジェクトポインタのコレクションを使用してメモリリークを回避するにはどうすればよいですか?

  2. 2

    データベースのonclickを更新するインクリメントボタンをCodeigniterで作成するにはどうすればよいですか?

  3. 3

    Flutterの特定のリストアイテムのカウンターをインクリメントするにはどうすればよいですか?

  4. 4

    1 つのデータベース リクエストで異なる mysql 行をカウントするにはどうすればよいですか?

  5. 5

    ドメインとサブドメインに適切なデータベース構造を作成するにはどうすればよいですか?

  6. 6

    ボタンをクリックしてカウンターの値をインクリメントするにはどうすればよいですか?

  7. 7

    MySQLデータベースでこの種の自動インクリメントを実現するにはどうすればよいですか?

  8. 8

    mySQLデータベースのエントリをより速くカウントするにはどうすればよいですか?

  9. 9

    データベース関数を使用するYiiでクエリ結果をカウントするにはどうすればよいですか?

  10. 10

    カウンターインクリメントでデフォルト値を変更するにはどうすればよいですか?

  11. 11

    Azure DocumentDBアカウント内のすべてのデータベースのリストを取得するにはどうすればよいですか?

  12. 12

    他のアプリ (Windows) でマウス イベントを適切にオーバーライドするにはどうすればよいですか?

  13. 13

    最初のアクションで配列リストからデータを適切に取得するにはどうすればよいですか?

  14. 14

    Android SQLiteデータベースで自動インクリメントIDを1から再開するにはどうすればよいですか?

  15. 15

    sqlalchemyのカスタムクエリのパラメーターにリストをバインドするにはどうすればよいですか?

  16. 16

    Dockerを使用して「ボリュームストアメタデータデータベースを開いているとき」のデーモンタイムアウトエラーを解決するにはどうすればよいですか?

  17. 17

    カスタムデータをJQueryクリックイベントに送信するにはどうすればよいですか?

  18. 18

    .netコアプロジェクトのSignalRCoreでpostgresqlデータベースをリッスンするにはどうすればよいですか?

  19. 19

    データベースからAngularのドロップダウンリストにデータを取得するにはどうすればよいですか?

  20. 20

    imdbリストファイルをpostgresqlデータベースにインポートするにはどうすればよいですか?

  21. 21

    メールリストをドメインでフィルタリングし、JavaScriptでカウントするにはどうすればよいですか?

  22. 22

    クラスター内の Google マップ マーカーでクリック イベントを作成するにはどうすればよいですか?

  23. 23

    カスタムdjangoコメントにマークダウンエディターを追加するにはどうすればよいですか?

  24. 24

    R散布図のデータポイントにggplotでより適切にラベルを付けるにはどうすればよいですか?

  25. 25

    生のSQLクエリを実行せずにActiverecordにデータベースドメインを追加するにはどうすればよいですか?

  26. 26

    これからサイクルのカウンターを理解によってリストに実装するにはどうすればよいですか?

  27. 27

    sqlite(PDO)データベースデータをハイチャートコードにリンクするにはどうすればよいですか?

  28. 28

    Document-Dbデータベース内のすべてのドキュメントを読み取らずにカウントが必要な場合に、Linqを使用してIQueryableクエリを構築するにはどうすればよいですか?

  29. 29

    インメモリSQLiteデータベースで行レベルのロックを実現するにはどうすればよいですか?

ホットタグ

アーカイブ