繁体   English   中英

如何比较没有缓存的neo4j查询的性能?

[英]How to compare performance on neo4j queries without cache?

我一直在尝试比较neo4j中的查询性能。

为了提高查询效率,我添加了索引,使用profile分析了结果,并在使用USING INDEX时尝试了相同的操作。

在大多数查询中,DB Hits使用第二个选项(使用USING INDEX)要好得多,行数相同或更少,但时间性能似乎不可靠:在几个查询中添加USING INDEX虽然性能更好但速度较慢通过重新执行查询,参数(db命中和行)和时间变得更好。

为了阻止缓存的干扰,转到属性文件,将neo4j.properties中的cache_type更改为none并重新启动neo,但看起来每次相同查询的结果都会更快(直到某一点) 。

测试它的最佳方法是什么?

Neo4j具有(高达2.2.x) 两层缓存架构 使用cache_type=node您只需切换对象缓存。 要禁用页面缓存,可以使用dbms.pagecache.memory=0 但是,如果禁用所有缓存,则基本上可以测量IO子系统的速度,因为每个查询都会进入裸机并从磁盘读取。

我建议采用不同的方法:启用两个缓存并运行您想要多次比较的查询以加热缓存。 对温暖的缓存进行测量,因为这更接近真实的生产场景。

在旁注:在Neo4j 2.3中,对象缓存将消失,我们只有页面缓存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM