Neo4J Java Native API против Traversal API против Cypher

Кто-нибудь проводил оценку производительности для Neo4J Java Native API, Traversal API и Cypher. Какой из трех вышеперечисленных вариантов даст мне лучший результат с точки зрения производительности? Кроме того, для операций записи следует использовать собственные API-интерфейсы Java или шифр. Есть ли возможность массовых операций с БД в собственных API, чтобы они попадали в БД только один раз, а не для каждого создания узла/отношения.


person Piyush    schedule 09.12.2016    source источник


Ответы (1)


Вам будет интересно это статья. Но главный вывод из их тестов

  • Core API может ответить примерно на 2000 запросов «друг друга» (должен признать, что в очень редкой сети).
  • Фреймворк Traverser примерно на 25% медленнее, чем Core API.
  • Хуже всего шифр, который медленнее, по крайней мере, на один порядок, способный отвечать только примерно на 100 запросов, подобных FOAF, в секунду. Я был в шоке, поэтому поговорил с Андресом Тейлором из neo4j, который в основном работает в cypher. Он спросил, какую версию neo4j я использую, и я сказал, что это 1.7. Он сказал мне, что я должен проверить 1.9. так как Cypher стал более производительным. Поэтому я запускаю тесты для neo4j 1.8 и neo4j 1.9, к сожалению, Cypher стал медленнее в новых версиях neo4j.

Тем не менее, я бы порекомендовал использовать Cypher, за исключением ситуаций с высокой производительностью. (В основном, чем сложнее работать, тем быстрее это может быть. Вам решать, как сбалансировать усилия по разработке с производительностью.) Кроме того, эти данные устарели, и каждое крупное обновление Neo4j содержит новые приемы, которые планировщик Cypher может использовать. использовать для более эффективного запроса. Таким образом, производительность Cypher будет сильно зависеть от содержимого БД и версии Neo4j (к лучшему или к худшему).

Кроме того, Traversal API построен на Core API, а Cypher построен на Traversal API; Так что все, что вы можете сделать в Cypher, можно сделать с помощью двух других.

person Tezra    schedule 18.05.2017