
Индексы необходимы для эффективного обеспечения ограничений целостности и эффективной обработки запросов и транзакций. Они созданы на таблицах и представлениях. Например, индексы, используемые в книгах, которые облегчают пользователю быстрый доступ к содержанию книги, аналогично, у нас есть индексы в SQL.
Сравнительная таблица
Основа для сравнения | Кластерный индекс | Некластерный индекс |
---|---|---|
основной | Определяет порядок хранения строк в таблице в целом. | Определяет порядок хранения строк в таблице с помощью отдельной физической структуры. |
Количество индексов, разрешенных на одну таблицу | Только один кластерный индекс | Несколько некластеризованных индексов |
Доступ к данным | Быстрее | Более медленный по сравнению с кластерным индексом |
Дополнительное дисковое пространство | Не нужно | Требуется хранить индексы отдельно |
Определение кластерного индекса
Кластерный индекс в основном используется для упорядочения строк в таблице. Таблица может иметь только один кластеризованный индекс, поскольку строки в таблице могут быть отсортированы только в одном порядке, но существуют способы создания составного кластерного индекса . Столбцы включены в кластеризованный индекс, и логический или индексированный порядок значений ключей такой же, как физически сохраненный порядок соответствующих строк. Если для данных нет кластеризованного индекса, он сохраняется в куче .
Доступ к записи в куче занимает очень много времени, где каждая запись в таблице сканируется для доступа к нужным данным. При сканировании таблицы не было возможности узнать, есть ли еще доступные совпадения или нет. Итак, этот метод был очень неэффективным.
При использовании кластерного индекса доступ к данным более быстрый и систематический, если таблица организована в некотором порядке. Это определяется в поле порядка таблицы. Его поисковый ключ используется для указания последовательного расположения файла или таблицы. Кластерный индекс создается автоматически, когда для таблицы определен первичный ключ .
Определение некластеризованного индекса
Некластеризованный индекс хранит данные в одном месте, а индексы в другом месте, и индекс будет иметь указатели на место хранения данных. Таблица может иметь несколько некластеризованных индексов, поскольку индекс в некластеризованном индексе хранится в другом месте. Например, книга может иметь более одного индекса, один в начале, который показывает содержание книги по единицам, и другой индекс в конце, который показывает индекс терминов в алфавитном порядке.
Он определяется в неупорядоченном поле таблицы. Некластеризованный индекс может повысить производительность запросов, использующих ключи, отличные от первичных ключей. Некластеризованный индекс создается автоматически, когда для таблицы определен уникальный ключ .
Ключевые различия между кластеризованным и некластеризованным индексом
- Номер кластеризованного индекса, который может иметь таблица, равен только одному. В то время как таблица может иметь несколько некластеризованных индексов.
- Кластерный индекс работает быстрее, чем некластеризованный, потому что некластеризованный индекс должен ссылаться на базовую таблицу. Наоборот, это не относится к кластерному индексу.
- В некластеризованном индексе индекс хранится в отдельном месте, которое требует дополнительного пространства для хранения. В отличие от этого, кластерный индекс хранит данные базовой таблицы в том же физическом порядке, что и логический порядок индекса, поэтому он не требует дополнительного места для хранения.
Заключение
Кластерный индекс - это способ хранения данных в строках таблицы в определенном порядке. Таким образом, при поиске нужных данных затрагивается только соответствующая строка, которая содержит данные и представляется как выходные данные. С другой стороны, некластеризованный индекс находится в физически отдельной структуре, которая ссылается на базовые данные при поиске. Некластеризованная структура может иметь другой порядок сортировки.