首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Neo4j查询非常慢

Neo4j查询非常慢
EN

Stack Overflow用户
提问于 2018-04-25 15:00:55
回答 1查看 100关注 0票数 0

我使用以下标签建立了一个Neo4j 3.3.5数据库:

  • 标签: 30K
  • 专家:304 k
  • 出版物:2800万

标签和出版物之间有1.2B的关系。455 k出版物与专家之间的关系。

我在Mac (16G-Java 9)和Thinkpad (32G-UbuntuServerJava 8)上做了测试。两者都是一样的:非常慢。我的数据库在磁盘上是~50G。

标签名上只有一个索引。这是我唯一用过的标准。

以下查询耗时8秒:

代码语言:javascript
运行
复制
MATCH (expert:Expert)-[:PUBLISHED]->(publication:Publication)-[:HAS_TAG]->(tag:Tag)
USING INDEX tag:Tag(name)
WHERE tag.name IN ["Enzymes", "Metabolism", "Peptides"]
WITH expert, count(DISTINCT tag) AS relevantNumberOfTags, count(DISTINCT publication) AS relevantNumberOfPublications
WHERE relevantNumberOfTags = 3
RETURN expert.name, relevantNumberOfPublications
ORDER BY relevantNumberOfPublications DESC
LIMIT 40;

对该查询的解释是:

代码语言:javascript
运行
复制
+-------------------+----------------+-----------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Operator          | Estimated Rows | Variables                                                                                     | Other                                                                                                                                                                           |
+-------------------+----------------+-----------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| +ProduceResults   |             40 | anon[311], anon[329], anon[335], relevantNumberOfPublications, expert, expert.name, ...       |                                                                                                                                                                                 |
| |                 +----------------+-----------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| +Projection       |             40 | expert.name, relevantNumberOfPublications -- anon[311], anon[329], anon[335], ...             | {expert.name : , relevantNumberOfPublications : }                                                                                                                               |
| |                 +----------------+-----------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| +Top              |             40 | anon[311], anon[329], anon[335], relevantNumberOfPublications, expert, relevantNumberOfTags   | anon[335]; 40                                                                                                                                                                   |
| |                 +----------------+-----------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| +Projection       |           3243 | anon[329], anon[335] -- anon[311], relevantNumberOfPublications, expert, relevantNumberOfTags | { : expert.name,  :   relevantNumberOfPublications@255}                                                                                                                         |
| |                 +----------------+-----------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| +Filter           |           3243 | anon[311], relevantNumberOfPublications, expert, relevantNumberOfTags                         | anon[311]                                                                                                                                                                       |
| |                 +----------------+-----------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| +Projection       |           4324 | anon[311] -- relevantNumberOfPublications, expert, relevantNumberOfTags                       | {expert : expert, relevantNumberOfTags : relevantNumberOfTags,   relevantNumberOfPublications@255 :   relevantNumberOfPublications@255,  : relevantNumberOfTags = {  AUTOINT1}} |
| |                 +----------------+-----------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| +EagerAggregation |           4324 | relevantNumberOfPublications, relevantNumberOfTags -- expert                                  | expert                                                                                                                                                                          |
| |                 +----------------+-----------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| +F ilter           |       18695308 | anon[22], anon[62], expert, publication, tag                                                  | tag.name IN {  AUTOLIST0}; tag:Tag                                                                                                                                              |
| |                  +----------------+-----------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| +Expand(All)      |       20141244 | anon[62], tag -- anon[22], expert, publication                                                | (publication)-[:HAS_TAG]->(tag)                                                                                                                                                 |
| |                  +----------------+-----------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| +Filter           |         454092 | anon[22], expert, publication                                                                 | publication:Publication                                                                                                                                                         |
| |                 +----------------+-----------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| +Expand(All)      |         454092 | anon[22], publication -- expert                                                               | (expert)-[:PUBLISHED]->(publication)                                                                                                                                            |
| |                 +----------------+-----------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| +NodeByLabelScan  |         304114 | expert                                                                                        | :Expert                                                                                                                                                                         |
+-------------------+----------------+-----------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

如果我使用大小,而不是使用计数,我将不会有相关的出版物。我不知道如何优化这个查询。返回结果需要8秒。因此,我不知道这是否正常,因为我将没有足够的内存,例如。

EN

回答 1

Stack Overflow用户

发布于 2018-04-25 15:51:23

使用查询时,您正在扫描所有关系,因为关系的类型是动态的。

例如,如果您这样做,它将非常快(Neo4j从它的stats数据库中获取计数):MATCH ()-[:ACTED_IN]->() RETURN count(*)

如果您有APOC,并且希望获得有关数据库的一些统计信息,我建议您使用以下过程:CALL apoc.meta.stats yield labelCount, relTypeCount, propertyKeyCount, nodeCount, relCount, labels, relTypes, stats

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

https://stackoverflow.com/questions/50025520

复制
相关文章

相似问题

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