Хобрук: Ваш путь к мастерству в программировании

Тест производительности Neo4j

Итак, я загружаю миллион узлов в базу данных сообщества Neo4j и пытаюсь получить 564343-й узел. Это занимает 31,568 секунды. Neo4j настолько отстой или я что-то не так делаю? Я использую jruby с драгоценным камнем neo4j.rb.

irb(main):001:0> 1.upto(1000000) { |n| UserNode.create(user_id: n) }
irb(main):018:0* bm = Benchmark.measure do 
irb(main):019:1* nx = UserNode.find(user_id: 564343)
irb(main):020:1> end
=> #<Benchmark::Tms:0x2836b45a @stime=0.7000000000000028, @real=31.567999839782715, @total=37.9700000000001, @cutime=0.0, @utime=37.270000000000095, @label="", @cstime=0.0>
irb(main):021:0> puts bm
37.270000   0.700000  37.970000 ( 31.568000)
=> nil
08.06.2013

Ответы:


1

Я не очень хорошо знаком с neo4j.rb, но у меня такое ощущение, что вы не используете индекс в своей находке, поэтому необходимо сканировать всю базу данных.

08.06.2013
  • Вы правы, с индексацией он работает намного быстрее. Спасибо! 08.06.2013
  • Новые материалы

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

    Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
    Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

    Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
    Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

    стройный-i18следующий
    Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..

    Обзор 20 основных и современных методов работы с массивами в JavaScript
    Вы знаете их всех? В этом коротком посте я покажу сводку методов, доступных в JavaScript для работы с массивами. Я надеюсь, что вы найдете это полезным! В конце поста вы найдете ссылку на..

    Да, но я чувствую необходимость указать, что это или не единственные два.
    Да, но я чувствую необходимость указать, что это или не единственные два. Обучение с подкреплением (в качестве примера) также является важным.