首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Neo4j查询执行时间:当多次执行同一查询时,似乎只有第一次正确

Neo4j查询执行时间:当多次执行同一查询时,似乎只有第一次正确
EN

Stack Overflow用户
提问于 2020-03-14 14:48:29
回答 1查看 105关注 0票数 1

我使用LDBC数据集来测试Neo4j 4.0.1中的执行时间,SF = 1,并且我使用java连接Neo4j,ResultSummary.resultAvailableAfter()来获得执行时间,这是获得结果并开始流式传输的时间。但是对于相同的查询,当我第一次运行时,执行时间似乎是合理的,比如几百毫秒,但是当我继续运行相同的查询时,执行时间几乎为0。我猜是查询缓存的影响,但是有没有合适的方法来测试查询执行时间并得到合理的结果呢?

现在我只能重新启动db才能得到似乎正确的结果。我猜这是因为Neo4j直接缓存查询结果,如果多次执行相同的查询,则只获取结果。有什么方法可以避免这种情况吗?例如,让neo4j进行正常的缓存(如节点和关系),而不是直接缓存查询结果。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-03-15 08:24:15

页面缓存很可能是您所看到的结果的原因(我在构建neo4j集群时与neo4j工程师进行了一些讨论。他们优化集群性能的建议似乎表明了这一点)。您应该将页面缓存大小设置为0或非常接近0(例如1Meg或更低的值)。您可以在此处了解内存设置https://neo4j.com/docs/operations-manual/current/performance/memory-configuration/

您需要更改的具体设置是

代码语言:javascript
复制
dbms.memory.pagecache.size=1M 

或将其设置为0。将其显式设置为一个值。不要将此设置保留为注释状态。neo4j可能会将默认内存大小分配给页面缓存。在设置更改后重新启动您的服务器/集群,并查看您得出的性能数据。还应通过运行以下命令检查缓存的外观

:sysinfo

命令在运行查询之前和之后在浏览器中执行。

并且没有直接的设置来告诉neo4j缓存什么内容。这是正确的,由服务器本身决定。

对不起,我没有足够的名誉点来对你的问题发表评论!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60680417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档