2

このようにネストされたクエリを実行すると

FOR f in friends 
  FOR l in locations 
     FILTER l.friends_id == f.id
RETURN {'friends':f, 'locations':l}

(3484 件)。

応答が遅い (7 ~ 10 秒) Web インターフェイスと arangosh を介して結果を返す

私の懸念: この応答時間は長すぎませんか? 本番データベースはそれよりもはるかに大きくなり、パフォーマンスの問題を引き起こす可能性があります。

何か案が?よろしく!

4

1 に答える 1

2

私は次のことを試しました:

arangosh [_system]> db._create("users");
[ArangoCollection 1252513721, "users" (type document, status loaded)]

arangosh [_system]> db._create("locations");
[ArangoCollection 1252644793, "locations" (type document, status loaded)]

arangosh [_system]> db._query("FOR i IN 1 .. 10000 INSERT { 'id': i, 'name': 'Name' } INTO users").toArray()
[ ]

arangosh [_system]> db._query("FOR i IN 1 .. 10000 INSERT { 'friends_id': i, 'name': 'Name' } INTO  locations").toArray()
[ ]

arangosh [_system]> db.locations.ensureHashIndex("friends_id")

var a = db._query("FOR f IN users FOR l IN locations FILTER l.friends_id == f.id RETURN { 'u': f, 'l': l}")

これにより、1000 レコードが非常に高速に返されます。

「ensureHashIndex」を実行して、もう一度やり直していただけますか? 今は速くなりましたか?

于 2014-07-17T07:56:49.587 に答える