我很好奇,我找不到太多关于这方面的信息。检查主键之间的重复项也是 O(n) 吗?
大多数其他 SQL 数据库是否相同?
有没有列出这些信息的地方?
SQL Server 中的主键始终由索引(实际上,非 Hekaton 表的 B 树)支持。索引允许O(log N)查找(和重复检查)。
在实践中,O(1)即使你瞄准了行为,也很难衡量行为的差异。较高的索引级别往往会被缓存,并且树非常平坦。SQL Server 中的最大树级别为 15 级(您需要加载具有约 900 字节键的索引页以强制最小扇出)。
每个索引行的大小必须为 807 字节,以在页面上最多容纳 9 个。那么,L 层的索引大小为807*9^L。L 从 1 开始L == 15 => 807*9^15/10^12 = 166154 TB。最大数据库大小: 524,272 TB。所以最高等级是15。