6

私は、高い書き込み負荷と、ユーザー定義/構築されたツリーを表す数千、さらには数百万の階層レコードを持つ必要がある Web アプリケーションを構築しています。私はスレッドでフォーラムを構築しようとしているのではなく、何千もの小さな階層 (最大 10 ~ 20 の子孫を持つツリー) を持つ巨大なデータベースを構築しようとしています...

階層を格納するための多くのモデルを認識しています。現在、ネストされたセットを使用していますが、巨大なデータと負荷のパフォーマンスが問題です。また、隣接リストまたは同様のものがこれを解決するかどうかも疑わしいです。

超高速のキー/値ストレージである Mongo データベースを試していますが、MySQL しか使用できません。

同様の問題を抱えている他の人の経験について聞きたいです。

4

2 に答える 2

5

MySQL プラグインをインストールできる場合は、OQGraphストレージ エンジンが必要です。

于 2011-11-17T14:19:14.010 に答える
4

ネストされたセットの問題は何ですか?

ノードの追加/削除時に lft/rgt 値を再計算していますか?

少し慎重に計画すれば、微調整できるので、まれに再計算するだけで済みます。私は実際に試したことはありませんが、一度システムの計画を立てました (クライアントは最終的にシステムを必要としませんでした!)。

1 つは、値を最初に計算するときに、たとえば 1000 を掛けることです。その後、ノードを追加すると、値の間に数字を挿入できます。挿入数が多い場合にのみ、数が不足し始めます。優先度の低いバッチ プロセスでは、ツリーを再計算して、新しい挿入用に番号を解放できます。

番号を操作して、削除をアーカイブすることもできます。実際、子のないノードは簡単です。再計算は必要ありません。子供の場合はもっと複雑になりますが、実行できるはずだと思います。

于 2011-11-17T16:49:11.673 に答える