Neo4j多标签模式和查询性能

xytpbqjk  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(129)

假设我有一个具有定义ID的Decision base节点:

@NodeEntity
public class Decision {

    @Id
    @Index(unique = true)
    private Long id;

}

我定义了一个UNIQUE INDEX on Decision.id
另外,我有两个节点来自Decision:

@NodeEntity
public class Profile extends Decision {
}

@NodeEntity
public class Notification extends Decision{
}

让我们考虑一个场景,我的数据库中有1000 Profiles1 billion Notifications。通过Cypher查询配置文件是否会受到10亿个通知节点的显着影响,因为它们共享相同的公共标签“决策”?
我是否还应该在'Profile.id'和'Notification.id'上添加UNIQUE INDEX,即使它们从'Decision'节点继承它?

a5g8bdjr

a5g8bdjr1#

唯一性约束创建RANGE索引。RANGE索引在内部使用B+树算法,其复杂度为O(log n)。
1K的log2约为10,1G的log2约为30。由您决定因子3是否足够重要,以保证创建另一个指数。只为1K节点创建一个额外的索引不应该占用太多的存储空间,所以这不应该是一个问题。你可以尝试一下,看看是否值得。

相关问题