Производительность запросов Neo4j cypher через REST на центрированных узлах

Я все еще новичок в neo4j. Я написал небольшую службу RESTFUL, которая вставляет узлы в базу данных neo4j (сервер) через REST в качестве PoC. Структура выглядит так: root - [NODES] -> n -> [NODE] -> node

Узел n - это тот, который "центрирован". Я планировал добавить другой центрированный узел в качестве разных типов узлов (например, продукты / категории / документы / атрибуты / пользователи ...)

В моем первом примере я добавил ок. 1.000 узлов. Теперь я попытался увеличить количество узлов и запросить эти узлы. Теперь я столкнулся со своего рода "проблемами" производительности. Это мои запросы, выполняемые в веб-консоли neo4j (1.6.1)

START x = node (0) MATCH PATH = (x - [: NODES] -> по центру - [: NODE] -> node) вернуть узел ORDER BY node.id LIMIT 10

START x = node (0) MATCH PATH = (x - [: NODES] -> по центру - [: NODE] -> node) return count (*)

Мне нужны запросы для разбивки на страницы. Первый должен выбрать элементы, которые будут отображаться, а второй - для расчета страниц.

Время запроса: 1.000 узлов: ~ 120 мс 4.000 узлов: ~ 200 - 300 мсек 6.000 узлов: ~ 250 - 500 мс

Время запроса шифра увеличивается очень быстро (на мой взгляд). Я планировал таким образом добавить ~ 2.000.000 узлов. Что-то не так с моими запросами? Можно ли получить их быстрее? (Я уже установил размер кучи neo4j на 100M, что должно быть нормально для узлов 10k)

Заранее спасибо!


person Alebon    schedule 12.04.2012    source источник


Ответы (2)


Первое, что вы можете сделать, это удалить назначение пути - вы не используете путь PATH, поэтому создавать его не нужно.

Кроме этого, похоже, вы здесь не делаете ничего плохого.

Производительность Cypher для этого типа запросов намного лучше на 1.7, чем на 1.6. Вчера мы выпустили 1.7.M03, можете попробовать, если вы не привязаны к 1.6.

person Andres    schedule 12.04.2012
comment
Да, похоже, так лучше. Теперь у меня 10к узлов. Первый запрос упал с ~ 300-500 мс до ~ 100 мс, а количество запросов упало с ~ 110 мс до 50-60 мс. Нравится это ;) - person Alebon; 12.04.2012
comment
Еще один вопрос: часто ли используются эти центрированные узлы? - person Alebon; 12.04.2012

Может помочь вообще не иметь «центрированных» узлов, если они являются только дескрипторами следующего узла. Я думаю, что было бы быстрее и лучше организовать, если бы вы просто использовали узлы индекса с метками для описания типов узлов (например, продуктов / категорий / документов / атрибутов / пользователей ...). см. ярлыки

person user2343996    schedule 28.05.2013
comment
Это верно для новых релизов, включая лейблы;) - person Alebon; 04.06.2013