2

neo4j データベースのインデックスからデータを取得していますが、実行時間に問題があります。結果の値を単純にカウントするクエリを試しています。私の本番データベースでは、より複雑な計算を行っています。とにかく、私のクエリは次のようになります。

START person = node:user_index('muncipalityCode:(1278 OR 1285 OR 1283 OR 1293 OR 1284 OR 1261 OR 1282 OR 1262 OR 1281 OR 1280 OR 1273) ')
return count(person)

カウントは、約 20 秒で 278418 を返します (2.5 ~ 3 秒、キャッシュがウォームの場合)。確かに、かなり大きなデータセットを返しています。しかし、それは巨大ではありません。

このボトルネックを減らすことができる場所や、調べる必要のある構成設定はありますか? 起動時にキャッシュをウォームアップしようとしましたが、運用サーバーの RAM にすべてのデータを収めることができないため、裏目に出ます (私のサーバーには 16GB の RAM があります)。

私のデータベースには次の属性があります。10 329 245 ノード 97 923 564 プロパティ 50 697 532 リレーションシップ

4

1 に答える 1

2

Lukeを使用して、問題がインデックスにあるのか、コードの他の場所にあるのかを確認します。対応するLukeクエリが高速である場合、問題は他の場所にある可能性があります。

于 2013-02-07T12:18:04.090 に答える