我正在设置我的数据库,有时我需要使用一个ID。起初,我将一个ID作为属性添加到我感兴趣的节点,但意识到我也可以只使用ne4j的内部id "“。然后我偶然发现了CREATE INDEX ON :label(一些东西),并想知道这到底会做什么?我以为索引和应该是一回事?
这可能是一个愚蠢的问题,但由于我是数据库方面的初学者,我可能会错过其中的一些概念。
此外,我一直在阅读有关使用哪种数据库(mySQL、MongoDB或neo4j)的信息,并决定使用neo4j,因为我的数据基本上遵循图形结构。(它将用于构建代谢模型:连接基因->蛋白质->反应->化合物)
在SQL中,语法看起来太复杂了,因为我必须遍历几个表才能建立简单的连接,而neo4j很容易就能完成……据我所知,MongoDb独立地存储数据,而且,由于我的数据是连接的,它似乎并不真正适合数据结构。但是,再说一次,由于我对这一主题的了解有限,也许我没有做出正确的选择?
提前谢谢。
发布于 2019-06-05 06:15:24
Graph dbs是像这样的连接数据的理想选择,它比关系dbs或文档存储更适合存储和查询。
至于索引和is,这里是文档的index section,但要点是这与Neo4j如何查找起始节点有关。Neo4j只使用索引来查找这些起始节点(尽管在3.5中,当我们像这样进行索引查找时,如果在索引属性上有ORDER BY,它将使用索引来增强排序的性能)。
以下是Neo4j将根据可用性从最快到最慢尝试使用的内容:
按内部ID查找
您可以解释或分析查询以查看其查询计划,这将向您显示用于查找起始节点的查找方法,以及用于执行查询的其余操作。
一旦找到一个或多个起始节点,Neo4j就会使用关系遍历和过滤来展开并查找与所需模式匹配的所有路径。
https://stackoverflow.com/questions/56451847
复制相似问题