Я искал вокруг, но не могу найти подходящего объяснения концепции уникальных и неуникальных индексов в базе данных.
В Rails, например, вы можете создавать уникальные и неуникальные индексы для заданного поля, как описано в http://railsguides.net/advanced-rails-model-generators/
Чего я не понимаю, так это того, что если целью индекса является «установить ярлык» для позиции значения в таблице для более быстрого доступа к ней, то как несколько значений могут использовать один и тот же индекс?
Скажем, например, я храню электронные письма в таблице и хочу проиндексировать их позиции значений. Если до сих пор я понял это правильно, в случае, если у меня есть неуникальные индексы, тогда БД может иметь [email protected], проиндексированный в позиции 150, а [email protected] также проиндексирован в позиции 150. Итак, если я в конечном итоге скажем 100 разные значения в позиции 150, разве это не противоречит цели индексации в первую очередь, если БД все равно придется искать все значения в позиции 150, чтобы найти точную запись, которая мне нужна?
Как это понимать??
Спасибо