我正在设计一个使用Neo4j实现的数据模型。这是关于一个交通系统,它有一些车站,一些车辆在它们之间行驶。
一些车站有大量的旅行,比如每个月一百万次。因此,我想知道,如果有一些节点有数百万条边从它们出来,是否会有性能损失?用一些设计技巧来保持较低的度数是不是更好(可能会让设计变得更糟)?
发布于 2018-05-02 05:12:49
关系度数在遍历时非常重要,所以遍历任何关系类型和方向的扩展,或者具有高度数的关系类型(和方向)的扩展。
因此,如果某个特定位置有100k个:TRAVELS_TO关系,该位置有100个:已访问关系,而该位置只有1个:TRAVELS_TO关系,那么在遍历这些:TRAVELS_TO关系到该位置时,您只会付出高昂的代价。如果您正在遍历不同类型和/或方向的关系,您不会因为10万个其他关系而付出更高的成本。
因此,多样化你的类型和/或方向肯定会有所帮助。
你可能想查看Max De Marzi的博客,了解他在constructing a flight/airtravel graph时的方法,你可以在这里找到使用的好方法。
https://stackoverflow.com/questions/50096693
复制相似问题