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

2024-01-10

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

为了使查询更高效,我添加了索引,使用profile分析结果,并尝试在使用USING INDEX时做同样的事情。

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

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

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


Neo4j 有(最高 2.2.x)两层缓存架构 http://neo4j.com/docs/2.2.3/configuration-caches.html. With cache_type=node您只切换对象缓存。要禁用页面缓存,您可以使用dbms.pagecache.memory=0。然而,如果所有缓存都被禁用,您基本上可以测量 IO 子系统的速度,因为每个查询都会进入裸机并从磁盘读取。

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

附带说明:在 Neo4j 2.3 中,对象缓存将消失,我们只有页面缓存。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何比较没有缓存的 Neo4j 查询的性能? 的相关文章

  • 为什么 pow(int, int) 这么慢?

    我一直在做一些项目欧拉练习来提高我的 C 知识 我写了以下函数 int a 0 b 0 c 0 for a 1 a lt SUMTOTAL a for b a 1 b lt SUMTOTAL a b c SUMTOTAL a b if c
  • ElasticSearch 匹配多个前缀术语

    我试图为 ElasticSearch 提供一个包含多个术语的查询 然后给出匹配的文档 其中指定的术语位于目标字段中的任何位置 这些术语可以是完整的单词或单词前缀 示例文档 msg 你好 我是一条短信 示例查询字符串 你好消息 你好 和 消息
  • 如何仅匹配两个节点之间的一种关系

    我正在使用 neo4j 图形数据库 它在 Ruby on Rails 中使用 例如 我汤姆和杰瑞之间有3个关系 他们合作盖了3栋房子 现在我只想匹配3个中的1个 如何编写查询代码 我已经尝试过 这是我的代码 Neo4j Session qu
  • 是否有任何众所周知的快速持久缓存解决方案? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我的网络爬虫需要非常快速且持久的缓存 它不需要像Java中的ConcurrentSkipListSet
  • 您可以从 MethodInfo 对象获取 Func (或类似的)吗?

    我意识到 一般来说 使用反射会对性能产生影响 实际上 我本人根本不喜欢反思 这纯粹是学术问题 假设存在一些如下所示的类 public class MyClass public string GetName return My Name 请耐
  • 慢 Eclipse Spring STS 插件

    我是 Spring 新手 安装了 Eclipse STS 插件 使用服务似乎非常慢 CPU 使用率激增 笔记本电脑只会变热 实际上风扇就像喷气发动机一样运行 直接响应服务的启动 停止 虽然下面的内容确实为我解决了 Spring STS 的所
  • 咖啡因与番石榴缓存

    根据这些微观基准 https github com ben manes caffeine wiki Benchmarks事实证明Caffeine https static javadoc io com github ben manes ca
  • UNWIND 从 JSON 文件加载的多个不相关的数组

    我试图通过一次调用 apoc load json 来展开多个数组属性 我的版本不能完全工作 某些关系无法加载 我的猜测是 这是由于通过WITH 命令进行输出管道造成的 如果我为每个基于数组的属性单独运行展开 我可以加载所有内容 但我很好奇如
  • 空 while 循环有什么影响?

    我知道这可能是一个有点 愚蠢 的问题 但有时 我只想循环直到条件为假 但我不喜欢让循环保持为空 所以代替 Visible true while IsRunning Visible false 我通常prefer while IsRunnin
  • 在hibernate统计中,load和fetch之间有什么区别

    我主要看EntityStatics http www hibernate org hib docs v3 api org hibernate stat EntityStatistics html http www hibernate org
  • 去除字符串的最佳方法是什么?

    我需要具有最佳性能的想法来删除 过滤字符串 I have string Input view 512 3 159 删除 view 和 的最佳性能方法是什么 和引号 我可以做这个 Input Input Replace view Replac
  • Apache Cassandra 中的复合索引

    我正在尝试设置一个 cassandra 列族 其中一些列上有二级索引 在读回数据时我需要进行过滤 在我最初的测试中 当我一起使用多个索引时 速度会变慢 这是我当前的配置方式 通过 cassandra cli update column fa
  • IEnumerable 作为 DataTable 性能问题

    我有以下扩展 它生成一个DataTable从一个IEnumerable public static DataTable AsDataTable
  • 嵌套辅助函数和性能

    嵌套辅助函数对于使代码更易于理解非常有用 谷歌甚至建议在他们的应用程序中使用嵌套函数时尚指南 https google styleguide googlecode com svn trunk javascriptguide xml Nest
  • 只读有运行时开销吗?

    出于某种原因 我一直认为readonly字段有与其相关的开销 我认为这是 CLR 跟踪是否存在readonly字段是否已初始化 这里的开销是一些额外的内存使用量 用于跟踪状态以及分配值时的检查 也许我这么认为是因为我不知道readonly字
  • 磁盘寻道时间测量方法

    我编写了一个脚本来测量 HDD 上的寻道时间 并且其完成方式的微小变化会导致显着不同的时间 第一个周期在磁盘开头的区域内进行跳转 第二个周期选择磁盘上执行查找的随机区域 相同大小 这种方法显然不同 但我不明白为什么它会改变结果 请注意 对于
  • 有谁知道一种更快的方法来执行 String.Split() 吗?

    我正在读取 CSV 文件的每一行 并且需要获取每一列中的各个值 所以现在我只是使用 values line Split delimiter where line是保存由分隔符分隔的值的字符串 衡量我的表现ReadNextRow我注意到它花费
  • 如何确保为客户端加载最新版本的 javascript 代码?

    我们的客户拥有数千名用户 他们都使用 Internet Explorer 和大量的 javascript 文件 这些文件可以增强他们对我们产品的用户体验 我遇到的问题是 每当我们更新这些脚本之一时无法知道客户端是否看到的是最新版本 我们要做
  • 如何使用mod_headers和mod_expires进行缓存

    我想在我的网站上缓存图像和其他文件 所以我所做的是确保 mod headers 和 mod expires 具有 usr sbin httpd l 然后将 htaccess 编辑为 ExpiresActive On ExpiresDefau
  • Draggable JS Bootstrap 模式 - 性能问题

    对于工作中的项目 我们在 JavaScript 中使用 Bootstrap Modal 窗口 我们想让一些窗口可移动 但我们遇到了 JQuery 的性能问题 myModal draggable handle modal header Exa

随机推荐