我正在构建一个由许多“类型”组成的ArangoDB边缘集合。按类型,想一想动物的分类。
我将构建一个连接所有这些的图表。例子:古代人类的亲子:能人-智人
将它们不同的类型放在不同的集合中仅仅是出于表面的组织原因。有一个小的可能性,它将是有用的,在未来的功能,我还没有想到。
我的具体问题是:在使用多个集合的ArangoDB中构建图表是否会影响性能?使用一个大型集合对图形更有效吗?
回答第一个评论:如果我把它分解成不同的边缘集合,那么它将是4个集合,每个集合大约有300,000行。类型可以有多个父母和子女。查询类型将是最短路径和每个查询之间的任何连接。如果这有意义的话?6度的凯文·培根类型的东西。
编辑:请看评论中的一些问题和答案。几乎每个查询都会跨越多个类型。许多查询将有5-7个顶点深度。这个项目几乎全部是阅读..。我一点也不担心写的速度。
编辑2:我将使用单个实例还是分布式集群?老实说也是!任何能加速阅读的东西。你来告诉我。
发布于 2018-04-09 12:58:17
在单个服务器设置中,使用多个集合不会造成任何损失。特别是如果查询不覆盖所有边缘集合,则对较小集合执行查找将更快。
这将取决于存储引擎(rocksdb /mmfile)的速度和速度。考虑到您希望获得最大的读取性能,mmfile可能会更快。
发布于 2018-04-18 06:14:37
我在ArangoDB中有一个分类法项目,从您报告的数据记录计数来看,这个项目似乎大致相当。
这一数量的数据不会给ArangoDB带来性能挑战。我选择将重点放在对关系进行建模,以便最好地表示数据集,并且没有对此表示遗憾。
在你的例子中,我可能会有一个物种节点的集合。首先,收集一个‘起源’边缘收集,以捕捉物种的进化路径。
如果有多个学派,多个分类,或其他框架来描述不同物种之间的交替路径,那么我将考虑在一个不同的边缘集合中捕捉每一个。
例如,如果一种分类方法是通过下巴形状得出的,另一种则总是使用骨盆,如果countryX有另一种方法,而另一种方法是基于DNA的,那么将一个边缘集合奉献给每一个都是有指导意义的。您将使用完全相同的一组物种节点创建替代互连网络。
物种分类不是我的领域,这些例子可能是胡说八道。但我建议不要错过以最有用的方式构建数据的机会。演出很可能不是问题。
https://stackoverflow.com/questions/48368680
复制相似问题