検索

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

PHP プロジェクト、1 つの関数がどんどん遅くなっている

メンバーが増え続けるメンバーシップ テーブルがありますが、新しいメンバーが追加されるたびに、以前のメンバーに対するボーナスが一定のルールに従って計算されます。とにかくメンバーが増えると、その数も増えていきます。メンバーを追加すると、ますます遅くなります (より多くの計算が必要になります)。このシナリオにどう対処するか。

怪我咯怪我咯2796日前415

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

  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:06:25

    最初にメンバーを追加すると、月曜日に決済し、紹介テーブルを作成し、先週の関連情報を記録し、ボーナスを計算するスクリプトを一度実行するなど、特定の時間範囲に従ってボーナスが計算されます。一週間。

    返事
    0
  • 巴扎黑

    巴扎黑2017-05-16 13:06:25

    1. この決済は登録ステップ中に行われますか?その場合は、決済ステップを取り出し、テーブルまたはメッセージキューに書き込んで、登録プロセスを実行するだけです

    2. しかし、毎日の決済に関する上記のコメントを見ると、ステップ 1 が完了し、今日参加したすべてのメンバーに対して決済プロセス全体が実行される必要があります (たとえば、午前 1 時)。 )決済が完了していれば大丈夫です。

    返事
    0
  • 为情所困

    为情所困2017-05-16 13:06:25

    テーブル構造が設計されているかどうか、インデックスが最適化できるかどうかを確認してください。などなど

    返事
    0
  • 天蓬老师

    天蓬老师2017-05-16 13:06:25

    決済を取り出して個別に実行します。計画されたタスクを作成し、毎日実行します。または、新規ユーザーの最初のログイン時に決済を書き込むこともできます。

    返事
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:06:25

    この要件のために、メッセージキューを実行できます。
    メンバー利益分配計算メッセージは、まずメッセージキューにプッシュされ、次にメッセージを受信するためのphpスクリプトが作成されてキャッシュにスローされ、毎日の営業時間外にデータベースに保存されます

    返事
    0
  • キャンセル返事