0

私はまだneo4jにかなり慣れていません。私は、PoCとしてRESTを介してノードをneo4j db(サーバー)に挿入する小さなRESTFULサービスを作成しました。構造は次のようになります。ルート-[ノード]->n->[ノード]->ノード

nノードは「中央」にあるノードです。他の中央ノードを異なるノードタイプとして追加することを計画しました(例:製品/カテゴリ/ドキュメント/属性/ユーザー...)

私の最初の例では、約を追加しました。1.000ノード。今、私はノードの数を増やし、そのノードを照会しようとしました。今、私は一種のパフォーマンスの「問題」に直面しています。これが私のクエリで、neo4j(1.6.1)Webコンソールで実行されます

START x = node(0)MATCH PATH =(x-[:NODES]-> centered-[:NODE]-> node)return node ORDER BY node.id LIMIT 10

START x = node(0)MATCH PATH =(x-[:NODES]-> centered-[:NODE]-> node)return count(*)

ページネーションのクエリが必要です。最初の要素は表示する要素を選択し、2番目の要素はページを計算する必要があります。

クエリ時間:1.000ノード:〜120ms 4.000ノード:〜200-300ms 6.000ノード:〜250-500ms

暗号クエリ時間は非常に速く増加しています(私の意見では)。そのようにして〜2.000.000ノードを追加する予定でしたが、クエリに何か問題がありますか?それらをより速く取得することは可能ですか?(私はすでにneo4jヒープサイズを100Mに設定しましたが、10kノードで問題ないはずです)

前もって感謝します!

4

2 に答える 2

1

最初にできることは、パスの割り当てを削除することです。パスPATHを使用していないため、作成する必要はありません。

それ以外は、ここでは何も悪いことをしていないようです。

このタイプのクエリのサイファーパフォーマンスは、1.6よりも1.7の方がはるかに優れています。昨日1.7.M03をリリースしましたが、1.6に縛られていなければ、それを試してみることができます。

于 2012-04-12T15:06:32.567 に答える
0

次のノードの記述子にすぎない場合は、「中央に配置された」ノードをまったく持たない方が役立つ場合があります。ノードタイプ(製品/カテゴリ/ドキュメント/属性/ユーザーなど)を説明するためにラベル付きのインデックスノードを使用するだけで、より速く、より適切に編成されると思います。ラベルを参照してください

于 2013-05-28T18:28:33.117 に答える