検索

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

php - [id pid] 型テーブルデータ、idごとに全サブチーム数を取得、データ量は2W以上。

次のような [id pid] タイプのデータ テーブルがあります。

--- id --- pid ---
--- A --- B ---
--- A --- C ---
--- B --- D ---
 - - なれ  - -
--- C --- F ---
--- C --- G ---

対応する構造:

-D
        -E
    -B
あ
    -C
        -F
        - G

A、B、C、D、E、F、G (自分を含む) の配下チームの数を数える方法。
たとえば

id チーム数
A7
B3
C3
D1
E1
F1
G 1

現在、すべてのデータを取り出して再帰的に取得しており、部下がいる場合はチームの数を再帰的にカウントします。

発生した問題:
データ量が 2W に達すると、すべてのデータが取り出され、メモリがいっぱいになります
何か良い解決策はありますか?

高洛峰高洛峰2843日前1056

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

  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:03:11

    段階的にカウントするため、ツリー全体を一度に取り出す必要はありません。
    さらに、統計のために、たとえば「%A%」のようにカウント (*) するだけで済みます。 A

    の子孫の数を求める

    返事
    0
  • キャンセル返事