【发布时间】:2015-10-27 17:15:01
【问题描述】:
我是 NEO4J 的新手,但已经使用 MySQL 多年。现在我创建了一个数据库,其中包含 700 000 个用户、800 000 份食谱和 160 万份保存在 NEO4J 中的食谱。
节点的结构是这样的(:User)-[:CREATED]-(:Cookbook)-[:SAVED]-(:Recipe)。所有用户和食谱都是唯一的,但一个用户可以拥有多个食谱,而每本食谱都可以拥有多个食谱。
我使用的是 EC2 m3.x2large,所以速度非常快。但是性能很差。这个查询:
MATCH (r:Recipe{recipe_id:2987431}) 返回 r;
需要 300-500 毫秒,mysql 可以在 2 毫秒左右执行。
这是常见的还是我配置的服务器都错了?
(我在 :Recipe(recipe_id) 上有一个索引)
【问题讨论】:
-
您的索引是唯一约束吗?比如
CREATE CONSTRAINT ON (book:Book) ASSERT book.isbn IS UNIQUE? -
不,这不正常,因为这里您只使用索引。例如,在我的计算机上,这种具有相同容量的查询需要 10 毫秒。要测试查询,您使用浏览器还是 neo4j-shell ?
-
谢谢!现在我在 neo4j-shell 中尝试了它,它只有 6 毫秒,但在 web 界面中仍然很慢......你知道为什么会这样吗?
标签: neo4j