魅力的なテーマ。カウンターをインクリメントするのは簡単ですが、 トランザクションであるために...つまり、意味をなすよりも長くDB全体をロックアウトする可能性があります!-)システム全体のボトルネックになる可能性があります。
厳密に正確なカウントが必要であるが、すぐに最新の状態にする必要がない場合、私のお気に入りのアプローチは、カウント可能な情報をログに追加することです(データの鮮度を高めるために必要な頻度でログを切り替えます)。ログが閉じられると(数千のカウント可能なイベントが含まれる)、スクリプトはログを読み取り、単一のトランザクションで必要なすべてを更新できます。直感的ではないかもしれませんが、数千の単一ロックよりもはるかに高速です。
次に、統計的にしかない非常に高速なカウンターがあります。 正確ですが、そのような不正確さは許容できるとは言えないので、これ以上詳しく説明するつもりはありません。