次のような [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 に達すると、すべてのデータが取り出され、メモリがいっぱいになります
何か良い解決策はありますか?
段階的にカウントするため、ツリー全体を一度に取り出す必要はありません。
の子孫の数を求めるさらに、統計のために、たとえば「%A%」のようにカウント (*) するだけで済みます。 A