Neo4j性能 - 它真的很快吗



我想在neo4j上运行一些测试,并将其性能与其他数据库进行比较,在本例中为postgresql。

这个postgres数据库有大约2000000个"内容",分布在大约3000个"类别"中。(这意味着有一个表"内容",一个"类别"和一个关系表"内容到类别",因为一个内容可以属于多个类别)。因此,将其映射到neo4j db,我正在创建节点"内容","类别"及其关系(内容到类别,内容到内容,因为内容可以具有相关内容)。

类别 -> 类别(类别可以有子类别)

内容 ->类别

内容 ->内容(相关)

您认为此"模式"适用于此类域吗?

  1. 从PostgreSQL do Neo4J迁移所有数据:这需要很长时间(大约4,5天)。这只是对节点的一些搜索并相应地创建/更新。(搜索使用索引和插入/更新,如果每个节点需要 500 毫秒)我做错了什么吗?

  2. 迁移已完成,所以我去尝试了一些查询...我最终得到了大约 2000000 个内容节点、3000 个类别节点和超过 4000000 个关系。

(请注意,我是所有这些 neo4j 世界的新手,所以我不知道如何优化密码查询......

我想测试的查询之一是:获取给定类别中给定"定义"的 10 个最新发布内容(这包括给定类别的子类别中的内容)

做了一点实验,我最终得到了这样的东西:

START 
  c = node : node_auto_index( 'type: category AND code: category_code' ),
  n = node : node_auto_index( 'type: content AND state: published AND definitionCode: definition_name' )
MATCH (c) <- [ r:BELONGS_TO * ] - (n)
RETURN n.published_stamp, n.title
ORDER BY n.published_stamp DESC
LIMIT 6

大约需要 3 秒,不包括第一次运行,这需要更多......这正常吗?

我做错了什么?

请注意,我使用的是 neo4j 1.9.2,并自动索引某些节点属性(包括类型、代码、状态、定义代码和published_stamp - 标题不是自动索引的)

此外,在上一个查询( start c = node : node_auto_index( 'type: category AND code : category-code' ) return c; )上返回"c"也很快(同样,不包括第一次运行,这需要 20-30 毫秒)另外,我不确定这是否是使用索引的正确方法...

提前感谢您(对不起,如果有些事情没有意义 - 问我,我会尝试更好地解释)。

您是否查看了批量导入功能:http://www.neo4j.org/develop/import?您真的应该在初始导入时查看它 - 这将需要几分钟而不是几天。

我会要求我们的一些技术人员就其他一些事情回复你。你真的不应该看到这个。

里克

这返回了多少个节点?

START 
  n = node : node_auto_index( 'type: content AND state: published AND definitionCode: definition_name' )
RETURN count(*)

我会尝试让图形完成工作。您的层次结构通常有多深?通常,您将任意长度的关系限制为不具有组合爆炸:我还会在内容和类别之间具有与类别树不同的关系类型。你能指出你目前的关系类型吗?

START 
  c = node : node_auto_index( 'type: category AND code: category_code' ),
MATCH (c) <- [:BELONGS_TO*5] - (n)
WHERE n.type = 'content' AND n.state='published' and n.definitionCode = 'definition_name'
RETURN n.published_stamp, n.title
ORDER BY n.published_stamp DESC
LIMIT 6

你能试试吗?

对于导入,最简单的方法是从SQL生成CSV并使用 http://github.com/jexp/batch-import 导入

您是否正在运行Linux,也许在ext4文件系统上?

您可能需要设置 barrier=0 挂载选项,如下所述:http://structr.org/blog/neo4j-performance-on-ext4

此主题的进一步讨论:https://groups.google.com/forum/#!topic/neo4j/nflUyBsRKyY

最新更新