gpt4 book ai didi

Neo4j 性能 - 它真的很快吗?

转载 作者:行者123 更新时间:2023-12-01 10:03:23 25 4
gpt4 key购买 nike

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

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

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

内容 -> 类别

内容 -> 内容(相关)

您认为这种“模式”适合这种类型的域吗?

  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 - 标题不是自动索引)

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

在此先感谢您(抱歉,如果有什么不明白 - 问我,我会尽力解释得更好)。

最佳答案

你看过批量导入工具了吗:http://www.neo4j.org/develop/import ?对于初始导入,您真的应该看看它 - 它只需要几分钟而不是几天。

我会请我们的一些技术人员就其他一些问题与您联系。你真的不应该看到这个。

瑞克

关于Neo4j 性能 - 它真的很快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18795936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com