Я просто узнаю об индексировании на SQL-сервере, но запутался между индексом Clustered и Unique. если оба применяются к уникальному ключевому столбцу ex: PersonID. так что разница между ними.
Thanx.
Я просто узнаю об индексировании на SQL-сервере, но запутался между индексом Clustered и Unique. если оба применяются к уникальному ключевому столбцу ex: PersonID. так что разница между ними.
Thanx.
Уникальный индекс - это просто индекс с уникальным ограничением, не более, не что иное. Кластеризованный индекс упорядочивает данные на диске в соответствии с индексом. Это полезно, если вы часто обращаетесь к данным в таблице через один столбец, например. через первичный ключ. Также таблица может иметь только один кластерный индекс (очевидно, конечно).
Эти два не связаны:
Вы можете иметь все 4 перестановки:
Некоторая путаница возникает, потому что по умолчанию для "первичного ключа" (PK) в SQL Server кластер.
"Первичный ключ" всегда должен быть уникальным. Разница между "уникальными" и "ПК" заключается в том, что уникальный позволяет одному NULL, PK не допускает никаких NULL.
Наконец, некоторые ограничения числа
Один грубый способ думать об этом - подумать о телефонной книге. Кластеризованный индекс - это порядок, в котором написаны страницы. Любые другие индексы представляют собой отдельные списки, показывающие, на какую страницу идти.
Например, телефонная книга "сгруппирована" по фамилии, но вы также можете искать по улице, поэтому у вас будет отдельный список, в котором люди, живущие на поддельной улице, находятся на страницах 3,45 и 63 и т.д.
В AFAIK каждая таблица может иметь только один кластерный индекс, который обычно является основным ключом, но может иметь любые уникальные индексы.