Arangodb ответ AQL медленно
Когда я делаю вложенный запрос, как это
FOR f in friends
FOR l in locations
FILTER l.friends_id == f.id
RETURN {'friends':f, 'locations':l}
(3484 результатов).
ответ медленный (от 7 до 10 секунд) возвращать результаты через веб-интерфейс и arangosh
Мое беспокойство: это время отклика не слишком большое? Производственная база данных будет намного больше, и может привести к проблемам с производительностью.
Любая идея? С уважением!
1 ответ
Решение
Я пробовал следующее:
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 записей довольно быстро.
Можете ли вы выполнить "sureHashIndex" и попробовать еще раз? Это сейчас быстрее?