検索

ホームページ  >  に質問  >  本文

php - mysql ビッグデータは時間ごとに合計数をカウントします。 count を使用する必要がありますか?

1. 今日の新規顧客の数、昨日の新規顧客の数、および今日のフォローアップ レコードの数をカウントしたいと考えています。以前に使用した方法はプラス 1 マイナス 1 です。 、しかし、エラーが頻繁に発生します。この統計的な問題を解決するにはどうすればよいですか?カウントを使用する必要がありますか?

世界只因有你世界只因有你2751日前542

全員に返信(2)返信します

  • PHP中文网

    PHP中文网2017-05-16 13:13:10

    メイン データベースで大量のデータの統計を直接実行しないことをお勧めします。テーブルをロックせずに 1 を加算して 1 を減算する方法は不正確です。テーブルをロックするとパフォーマンスに影響し、カウントのパフォーマンスも低下します。

    統計機能はサブシステムに分離することが推奨されており、業務サーバーはこの統計サブシステムへの顧客の追加/削除操作をメッセージキューを通じて通知します。

    このサブシステムでは、統計に非常に便利な時系列データベース (オープンソース Elasticsearch など) をストレージとして使用することを検討できます。特別な時系列データベースが必要なく、mysql を直接使用する場合でも、別の mysql データベースを作成して、ロック テーブルを 1 つ増やしたり、1 つ引いたり、カウントしたりすることができます。これはメイン データベースではありません。 。

    返事
    0
  • ringa_lee

    ringa_lee2017-05-16 13:13:10

    • 自動インクリメントIDの場合は、今日の最後のIDから昨日の最後のIDを引くことで計算できます。

    • 使用される統計テーブルはプラス 1 とマイナス 1 です

    • 使用回数

    返事
    0
  • キャンセル返事