假设我有一个具有定义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 Profiles
和1 billion Notifications
。通过Cypher查询配置文件是否会受到10亿个通知节点的显着影响,因为它们共享相同的公共标签“决策”?
我是否还应该在'Profile.id'和'Notification.id'上添加UNIQUE INDEX,即使它们从'Decision'节点继承它?
1条答案
按热度按时间a5g8bdjr1#
唯一性约束创建RANGE索引。RANGE索引在内部使用B+树算法,其复杂度为O(log n)。
1K的
log2
约为10,1G的log2
约为30。由您决定因子3是否足够重要,以保证创建另一个指数。只为1K节点创建一个额外的索引不应该占用太多的存储空间,所以这不应该是一个问题。你可以尝试一下,看看是否值得。