考虑以下示例:一个基于 Neo4j 的 wiki,其中包含大量文章和更多文章版本(所有编辑的历史记录)。使用多个标签来标识每个节点有多大区别
article:Article:Public
article:Article:Version
然后查询数据库
MATCH article:Article:Public
与组织类似的数据库相比
article:ArticlePublic
article:ArticleVersion
然后将查询相关文档,而无需对这两个组进行拦截
MATCH article:ArticlePublic
谈论性能?
因此,我最终填充了一个小数据库来测试不同大小的标记组如何影响彼此的性能。结果是,您可以自由地使用任意数量的标签,而不会对性能产生任何重大影响,前提是在这种情况下您从最小的集合到最大的集合指定它们:
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)