sql >> データベース >  >> RDS >> Mysql

Webサイトの効率的なヒットカウンターの書き方

    魅力的なテーマ。カウンターをインクリメントするのは簡単ですが、 トランザクションであるために...つまり、意味をなすよりも長くDB全体をロックアウトする可能性があります!-)システム全体のボトルネックになる可能性があります。

    厳密に正確なカウントが必要であるが、すぐに最新の状態にする必要がない場合、私のお気に入りのアプローチは、カウント可能な情報をログに追加することです(データの鮮度を高めるために必要な頻度でログを切り替えます)。ログが閉じられると(数千のカウント可能なイベントが含まれる)、スクリプトはログを読み取り、単一のトランザクションで必要なすべてを更新できます。直感的ではないかもしれませんが、数千の単一ロックよりもはるかに高速です。

    次に、統計的にしかない非常に高速なカウンターがあります。 正確ですが、そのような不正確さは許容できるとは言えないので、これ以上詳しく説明するつもりはありません。



    1. ストリームプールにだまされてはいけません

    2. PL / SQLにファイルが存在するかどうかを確認する方法は?

    3. マルチDCPostgreSQL:VPNを介して別の地理的場所にスタンバイノードを設定する

    4. PostgreSQLはどのようにUNIQUE制約を適用しますか/どのタイプのインデックスを使用しますか?