2014-07-16 70 views
2

當我這樣做這樣Arangodb響應慢

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

(3484個結果)嵌套查詢。

的響應是通過Web界面慢(在7到10秒)返回的結果和arangosh

我關心:這個響應時間是不是太大了?生產數據庫將比這更大,並且可能帶來性能問題。

有什麼想法? 關心!

回答

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」並重試嗎?現在速度更快嗎?

+0

「friend_id」未被索引!執行「ensureHashIndex」後問題解決了,謝謝! – Tarsis