Увеличивает ли добавление ребер в Neo4j обработку, необходимую для всех запросов?
Я пытаюсь разработать схему базы данных для Neo4j. Есть несколько способов сделать это. Я мог бы поместить данные как 1) свойства узла или 2) как ребра, указывающие на узел. Второй вариант гораздо более мощный с точки зрения того, как я мог бы запрашивать данные, и он предпочтительнее, поскольку не имеет никаких проблем с производительностью.
Будет ли количество ребер замедлять запросы, даже если эти ребра не участвуют в запросе? Я могу пометить эти края так, чтобы двигатель мог их игнорировать.
Есть ли здесь методы для оптимизации?
Сколько памяти используют ребра и свойства?
1 ответ
Я постараюсь ответить на ваши вопросы один за другим.
Будет ли количество ребер замедлять запросы, даже если эти ребра не участвуют в запросе?
Да, только если ваш запрос увеличил количество элементов. А использование разных ярлыков может ускорить поиск. Поэтому убедитесь, что вы хорошо спроектировали свою схему.
Есть ли здесь методы для оптимизации?
Свойства могут быть проиндексированы, но не свойства в отношениях. Так что планируйте согласно вашей схеме. И желательно идти с узлами со свойствами, а не отношениями. Для ясной информации вы можете обратиться к этому блогу
Сколько памяти используют ребра и свойства?
из блога neo4j мы можем узнать размер хранилища, которое каждый из них занимает.
Узлы - 14В
Отношение (ребра) - 33B
Недвижимость - 41B
Надеюсь это поможет!