考虑以下示例:基于neo4j的wiki,包含大量文章和更多文章版本(所有编辑的历史记录)。使用多个标签识别每个节点有多大差异
article:Article:Public
article:Article:Version
然后用
查询数据库MATCH article:Article:Public
与像
组织的数据库相比article:ArticlePublic
article:ArticleVersion
然后查询相关文件而不必截取两组
MATCH article:ArticlePublic
谈论表现?
答案 0 :(得分:4)
所以我最终填充了一个小数据库来测试标记组的大小差异会如何影响彼此的性能。结果是,您可以自由地使用任意数量的标签而不会对性能产生任何重大影响,前提是在此方案中您可以将它们从最小集合指定为最大集合:
neo4j-sh (?)$ match n:Test return count(n);
==> +----------+
==> | count(n) |
==> +----------+
==> | 189222 |
==> +----------+
==> 1 row
==> 1571 ms
neo4j-sh (?)$ match n:Test:One return count(n);
==> +----------+
==> | count(n) |
==> +----------+
==> | 170216 |
==> +----------+
==> 1 row
==> 1534 ms
neo4j-sh (?)$ match n:Test:Two return count(n);
==> +----------+
==> | count(n) |
==> +----------+
==> | 19006 |
==> +----------+
==> 1 row
==> 526 ms
neo4j-sh (?)$ match n:TestTwo return count(n);
==> +----------+
==> | count(n) |
==> +----------+
==> | 19082 |
==> +----------+
==> 1 row
==> 329 ms
neo4j-sh (?)$ match n:Two:Test return count(n);
==> +----------+
==> | count(n) |
==> +----------+
==> | 19006 |
==> +----------+
==> 1 row
==> 306 ms
答案 1 :(得分:0)
我想说避免大量的索引查找会给你带来更好的读取性能(ArticlePublic)但是,因为你使用了很多索引所以会占用更多的空间。
索引怎么样:Article.Version在文章索引中?