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" и попробовать еще раз? Это сейчас быстрее?

Другие вопросы по тегам