Увеличивает ли добавление ребер в Neo4j обработку, необходимую для всех запросов?

Я пытаюсь разработать схему базы данных для Neo4j. Есть несколько способов сделать это. Я мог бы поместить данные как 1) свойства узла или 2) как ребра, указывающие на узел. Второй вариант гораздо более мощный с точки зрения того, как я мог бы запрашивать данные, и он предпочтительнее, поскольку не имеет никаких проблем с производительностью.

Будет ли количество ребер замедлять запросы, даже если эти ребра не участвуют в запросе? Я могу пометить эти края так, чтобы двигатель мог их игнорировать.

Есть ли здесь методы для оптимизации?

Сколько памяти используют ребра и свойства?

1 ответ

Я постараюсь ответить на ваши вопросы один за другим.

  1. Будет ли количество ребер замедлять запросы, даже если эти ребра не участвуют в запросе?

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

  2. Есть ли здесь методы для оптимизации?

    Свойства могут быть проиндексированы, но не свойства в отношениях. Так что планируйте согласно вашей схеме. И желательно идти с узлами со свойствами, а не отношениями. Для ясной информации вы можете обратиться к этому блогу

  3. Сколько памяти используют ребра и свойства?

    из блога neo4j мы можем узнать размер хранилища, которое каждый из них занимает.

    Узлы - 14В

    Отношение (ребра) - 33B

    Недвижимость - 41B

Надеюсь это поможет!

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