Neo4j 高分贝命中率
Neo4j high db hits
我是 Neo4j 的新手,正在尝试根据性能测试我的查询。
如果我做一个简单的查询:
PROFILE
MATCH (P:User)
WHERE P.id = 1
SET P.name = "test"
Return P, P.name
有 50k 个用户节点,但对于此查询,在 75 毫秒内有 100 009 个数据库命中。
例如:这个查询:
MATCH (P1:User {id: "xxx"})
MATCH (P2:User {id: "xxx"})
MERGE (P1)-[fo:FOL]->(P2)
on match set P1.fol2 = P1.fol2 -1
on match set P2.fol = P2.fol -1
MERGE (P1)<-[fo1:FOL]-(P2)
on match set P1.fol = P1.fol -1
on match set P2.fol2 = P2.fol2 -1
MERGE (P1)-[:FRI]-(P2)
On create set P1.fri= P1.fri +1
on create set P2.fri = P2.fri +1
DELETE fo, fo1
此查询需要 201015 次数据库命中和 751 毫秒。
有没有办法减少数据库命中率,因为我猜这些数字太高了?
提前致谢!
在 User
、
上为 属性 id
创建索引
CREATE INDEX user_id FOR (n:User) ON (n.id)
这肯定会加快您的查询速度
我是 Neo4j 的新手,正在尝试根据性能测试我的查询。
如果我做一个简单的查询:
PROFILE
MATCH (P:User)
WHERE P.id = 1
SET P.name = "test"
Return P, P.name
有 50k 个用户节点,但对于此查询,在 75 毫秒内有 100 009 个数据库命中。
例如:这个查询:
MATCH (P1:User {id: "xxx"})
MATCH (P2:User {id: "xxx"})
MERGE (P1)-[fo:FOL]->(P2)
on match set P1.fol2 = P1.fol2 -1
on match set P2.fol = P2.fol -1
MERGE (P1)<-[fo1:FOL]-(P2)
on match set P1.fol = P1.fol -1
on match set P2.fol2 = P2.fol2 -1
MERGE (P1)-[:FRI]-(P2)
On create set P1.fri= P1.fri +1
on create set P2.fri = P2.fri +1
DELETE fo, fo1
此查询需要 201015 次数据库命中和 751 毫秒。
有没有办法减少数据库命中率,因为我猜这些数字太高了?
提前致谢!
在 User
、
id
创建索引
CREATE INDEX user_id FOR (n:User) ON (n.id)
这肯定会加快您的查询速度