【问题标题】:neo4j browser performing very slowlyneo4j 浏览器执行速度非常慢
【发布时间】:2018-10-01 20:04:00
【问题描述】:

我在 Neo4j 浏览器中运行下面的查询。我在数据库中有 2 个标签和 1 个关系。一个标签有 50,000 个节点,另一个标签有 1,800 个节点,有 48,000 个关系。

MATCH (u)-[r]->(n) WITH u, COLLECT(n) AS ns, COLLECT(r) AS rs WHERE SIZE(ns) > 1 RETURN u, ns, rs

这个查询需要大约 5 分钟才能运行,即使结果代码选项卡显示 Started streaming 7437 records after 98 ms and completed after 199 ms. 我认为这可能是由于可视化过程,所以我进行了配置并将初始节点显示、最大邻居和最大行数全部到 0。仍然需要大约 5 分钟。关于什么可能导致这种滞后的任何想法?

【问题讨论】:

    标签: neo4j cypher neo4j-browser


    【解决方案1】:

    延迟可能是由于服务器正在向 neo4j 浏览器发送大量数据。即使您告诉浏览器不显示所有返回的数据,它仍然必须处理从服务器发送的所有数据。

    如果您修改 Cypher 查询以告诉服务器 LIMIT 它发回的数据量,浏览器应该会更快地响应。例如,仅显示 10 个u 节点及其数据:

    MATCH (u)-[r]->(n)
    WITH u, COLLECT(n) AS ns, COLLECT(r) AS rs
    WHERE SIZE(ns) > 1
    RETURN u, ns, rs
    LIMIT 10;
    

    【讨论】:

    • 当我单击结果的“文本”选项卡时,我收到了一个奇怪的错误:Something went wrong: "TypeError: Cannot read property 'length' of undefined" and the application can't recover.。无论如何,我可能应该提到我的目标。我正在尝试对 neo4j 进行速度测试,因此限制数据量不是我应该做的事情。有没有其他方法可以查询这个,也许没有浏览器?
    • 您已经进行了速度测试。见this other answer
    • 对,但这似乎并不完全正确,因为我的浏览器响应时间比声称的 199 毫秒要长。
    • 是的,浏览器在处理大量数据时很慢。但是服务器确实那么快。 (事实上​​,它比时代暗示的要快,因为浏览器是一个瓶颈——直到浏览器真正读取所有数据并将其存储在本地内存中才能完成流式传输)。
    • 您是否碰巧知道一些可以更有效地处理数据的软件?最好是本质上返回结果的文本选项卡的轻量级内容?
    最近更新 更多