Мне любопытно, что
CREATE INDEX idx ON tbl (columns);
против.
CREATE UNIQUE INDEX idx ON tbl (columns);
имеет значительное алгоритмическое преимущество в производительности в PostgreSQL или реализациях MySQL при сканировании индексированных столбцов (ов), или же ключевое слово UNIQUE
просто вводит уникальное ограничение рядом с индексом.
Я полагаю, что, вероятно, справедливо сказать, что существует предельное преимущество, поскольку индексы, вероятно, будут внутренне реализованы как некоторая структура хэшей 1 а обработка столкновений по определению приводит к что-то отличное от O (1). Учитывая эту предпосылку, вполне вероятно, что если большой процент значений идентичен, то структура вырождается во что-то линейное.
Итак, для моего вопроса предположим, что распределение значений относительно дискретно и равномерно.
Спасибо заранее!
1 Это вопрос чистой спекуляции для меня, поскольку я не знаком с внутренними компонентами RDBM.