要运行单个查询,Neo4j会将整个节点图表带到RAM并执行查询吗?
答案 0 :(得分:1)
Neo4j使用pagecache(你可以在你的neo4j.conf中定义它的大小)来将db的部分缓存到内存中,因此查询的图越多,pagecache就越热(也有程序) ,就像APOC的预热程序一样,在db start运行时可以提供帮助。)
也就是说,只有查询所触及的图形部分才会进入页面缓存(前提是它们不在那里)。
如果您对查询进行了概要分析,并且在查询计划中看到了大量的数据库命中和行,那么可能正在访问和缓存该图的很大一部分。
如果您的查询是触及图表大部分内容的图表范围查询,则可能会出现这种情况。
但是,如果查询仅涉及图表的较小部分,则可能表示您的查询未进行调整(例如缺少索引来查找匹配的起始节点或其他问题在查询本身),您可能需要进行更改或获得帮助以简化查询。如果这似乎是问题,请尝试使用neo4j-users来获取有关cypher查询的建议。