ArangoDB 多边收集性能
ArangoDB multiple edge collection performance
我正在构建一个包含许多 "types" 的 ArangoDB 边缘集合。按类型,想想动物物种分类法。
我将构建一个连接所有这些的图表。
示例:parent/child 古代人种:Homo habilis->Homo floresiensis->Homo erectus->Homo sapiens
将它们放在不同的集合中只是出于肤浅的组织原因。对于我还没有想到的功能,它在未来很有用的可能性很小。
我的具体问题是:在使用多个集合的 ArangoDB 中构建图形是否会影响性能?使用一个大型集合对图形来说会更有效率吗?
回复第一条评论:
如果我将其分解为不同的边缘集合,它将是 4 个集合,每个集合大约有 300,000 行。类型可以有多个parents和children。查询的类型将是最短路径和每个之间的任何连接。如果这有意义? 6 度的 Kevin Bacon 类型的东西。
编辑:
请参阅评论以获取一些问题和答案。
几乎每个查询都会跨越多种类型。
许多查询的深度为 5-7 个顶点。
这个项目几乎完全是阅读...我根本不担心写入速度。
编辑 2:
我将使用单个实例还是分布式集群?老实说,要么!任何可以加快读取速度的东西。你告诉我。
在单服务器设置中,使用多个集合没有任何惩罚。
特别是如果您的查询不跨越所有边缘集合,则在较小的集合上执行查找会更快。
快/慢多少取决于存储引擎(rocksdb / mmfiles)。鉴于您想获得最大的读取性能,mmfiles 可能会更快。
我在 ArangoDB 中有一个分类项目,就您报告的数据记录数而言,它似乎大致相同。
这种数据量对 ArangoDB 没有性能挑战。我选择专注于对关系建模以最好地表示数据集,对此我并不后悔。
在你的例子中,我可能有一个物种节点集合。并从 'begats' 边缘集合的一个集合开始,以捕捉物种进化路径。
如果有多个思想流派、多个分类或其他描述物种之间交替路径的框架,那么我会考虑在不同的边缘集合中捕获每一个。
例如,如果一个分类学路径是通过颌骨形状得出的,另一个总是使用骨盆,如果 countryX 有另一种方法,而另一个是基于 DNA 的,那么为每个分类法专门收集一个边缘集合可能是有益的。您将使用完全/大部分相同的物种节点集创建替代互连网络。
物种分类学不是我的领域,这些例子可能是胡说八道。但我建议不要错过以最有用的方式构建数据的机会。性能很可能不是问题。
我正在构建一个包含许多 "types" 的 ArangoDB 边缘集合。按类型,想想动物物种分类法。
我将构建一个连接所有这些的图表。 示例:parent/child 古代人种:Homo habilis->Homo floresiensis->Homo erectus->Homo sapiens
将它们放在不同的集合中只是出于肤浅的组织原因。对于我还没有想到的功能,它在未来很有用的可能性很小。
我的具体问题是:在使用多个集合的 ArangoDB 中构建图形是否会影响性能?使用一个大型集合对图形来说会更有效率吗?
回复第一条评论: 如果我将其分解为不同的边缘集合,它将是 4 个集合,每个集合大约有 300,000 行。类型可以有多个parents和children。查询的类型将是最短路径和每个之间的任何连接。如果这有意义? 6 度的 Kevin Bacon 类型的东西。
编辑: 请参阅评论以获取一些问题和答案。 几乎每个查询都会跨越多种类型。 许多查询的深度为 5-7 个顶点。 这个项目几乎完全是阅读...我根本不担心写入速度。
编辑 2: 我将使用单个实例还是分布式集群?老实说,要么!任何可以加快读取速度的东西。你告诉我。
在单服务器设置中,使用多个集合没有任何惩罚。 特别是如果您的查询不跨越所有边缘集合,则在较小的集合上执行查找会更快。
快/慢多少取决于存储引擎(rocksdb / mmfiles)。鉴于您想获得最大的读取性能,mmfiles 可能会更快。
我在 ArangoDB 中有一个分类项目,就您报告的数据记录数而言,它似乎大致相同。
这种数据量对 ArangoDB 没有性能挑战。我选择专注于对关系建模以最好地表示数据集,对此我并不后悔。
在你的例子中,我可能有一个物种节点集合。并从 'begats' 边缘集合的一个集合开始,以捕捉物种进化路径。
如果有多个思想流派、多个分类或其他描述物种之间交替路径的框架,那么我会考虑在不同的边缘集合中捕获每一个。
例如,如果一个分类学路径是通过颌骨形状得出的,另一个总是使用骨盆,如果 countryX 有另一种方法,而另一个是基于 DNA 的,那么为每个分类法专门收集一个边缘集合可能是有益的。您将使用完全/大部分相同的物种节点集创建替代互连网络。
物种分类学不是我的领域,这些例子可能是胡说八道。但我建议不要错过以最有用的方式构建数据的机会。性能很可能不是问题。