我很好奇是否
CREATE INDEX idx ON tbl (columns);
对比。
CREATE UNIQUE INDEX idx ON tbl (columns);
在 PostgreSQL 或 MySQL 实现中,当扫描索引列时,使用 UNIQUE
关键字是否会对算法性能产生显著影响,或者它只是在索引旁引入唯一约束。
我认为可以说,在某种程度上索引可能会带来较小的好处,因为索引很可能被实现为某种哈希1结构,并且碰撞处理将导致不是 O(1) 性能。基于这个前提,如果大部分值都相同,那么结构就会退化为线性结构。
因此,对于我的问题,请假设值的分布是相对离散和均匀的。
谢谢!
1 对我来说纯属推测,因为我不熟悉 RDBM 的内部机制。