Neo4j的查询速度为何这么慢?这能商用吗

Neo4j的查询速度为何这么慢?这能商用吗,第1张

neo4j刚启动数据是冷的需要预热

使用bin/neo4j-shell 进入neo4j命令行界面,执行以下语句预热:

MATCH (n)

OPTIONAL MATCH (n)-[r]->()

RETURN count(n.prop) + count(r.prop) 索引问题

首先explain以下,看是否使用了索引,如果没有要添加索引,看下图:

其中,圈中部分NodeByLabelScan表示没有使用索引,这时要添加索引:

CREATE INDEX ON :Person(uid)

添加索引后再次explain,如下图:

此时,NodeIndexSeek表示使用了索引,这时再查询就快了。

最后,附张示例项目图,是个app界面

欢迎下载,人脉通

仍有问题请搜索“一起smart”或“iqismart”,去提问

在Neo4j中,一个关系(relationship)代表两个节点之间的连接。关系可以有不同的类型和属性,这些类型和属性是关系的两个重要概念。

Relationship Types(关系类型)是描述关系之间相似性的标签。比如可以创建一个"KNOWS"关系类型,表示两个人之间的关系,也可以创建一个"JOINED"类型,表示两个人加入了同一个组织。这些关系类型可以帮助我们更好地组织和注释我们的数据。

Relationship Properties(关系属性)是描述关系本身或关系之间关联的元数据。它们可以是键值对,包含有关关系实例的附加信息。例如,在"KNOWS"关系中,我们可能希望保存关系的强度或持续时间。关系属性通常用于过滤、排序和计算。

Property Keys(属性键)是节点和关系属性的命名空间。每个属性具有一个键和一个值,用于表示与该属性相关联的数据。与属性不同,属性键是描述属性标识符的元数据。在Neo4j中,属性键可以作为索引的一部分,以提高数据访问性能。

总的来说,Neo4j中的关系类型和关系属性是用于描述节点之间连接的元数据,而属性键是描述属性本身的元数据。

给你粘一段代码吧:

gbId=importer.createNode(node.pros,node.getAllLabels())//插入节点返回一个long gid

gid2Indexs(gbId, node)//将该gid放进索引中

idMap.put(node.getRequestId(), gbId)//我的程序中为了处理方便,维护了一个map

//创建关系的时候

String n1_requestId = rel.getRid_1()

String n2_requestId = rel.getRid_2()

Long n1Id = idMaps.get(n1_requestId)

Long n2Id = idMaps.get(n2_requestId)

RelationshipType type = rel.getType()

Map<String, Object>pros = rel.getRelPros()

if (null != n1Id &&null != n2Id)

importer.createRelationship(n1Id, n2Id, type, pros)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11870691.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存