Разница между Clustered и некластеризованный индекс

Ключевая разница между Clusterиндекс ed и некластеризованный

  • Кластерный индекс — это тип индекса, который сортирует строки данных в таблице по их ключевым значениям, тогда как некластеризованный индекс хранит данные в одном месте, а индексы — в другом.
  • ClusterИндекс ed сохраняет страницы данных в конечных узлах индекса, тогда как метод некластеризованного индекса никогда не сохраняет страницы данных в конечных узлах индекса.
  • Кластерный индекс не требует дополнительного дискового пространства, тогда как некластеризованный индекс требует дополнительного дискового пространства.
  • Cluster индекс обеспечивает более быстрый доступ к данным, с другой стороны, некластеризованный индекс медленнее.
Разница между Clusterиндекс ed и некластеризованный
Clustered против некластеризованного индекса

Что такое индекс?

Индекс — это ключ, созданный на основе одного или нескольких столбцов базы данных, который ускоряет выборку строк из таблицы или представления. Этот ключ помогает базе данных, например OracleSQL Server, MySQLи т. д., чтобы быстро найти строку, связанную со значениями ключей.

Два типа индексов:

  • Clusterиндекс ред.
  • не-Clusterиндекс ред.

Что такое Clusterиндекс ed?

Cluster Индекс — это тип индекса, который сортирует строки данных в таблице по их ключевым значениям. В базе данных есть только один кластеризованный индекс на таблицу.

Кластеризованный индекс определяет порядок, в котором данные хранятся в таблице, которую можно отсортировать только одним способом. Таким образом, для каждой таблицы может существовать только один кластерный индекс. В СУБД обычно первичный ключ позволяет создать кластерный индекс на основе этого конкретного столбца.

Что такое некластеризованный индекс?

Некластеризованный индекс хранит данные в одном месте, а индексы — в другом. Индекс содержит указатели на расположение этих данных. Одна таблица может иметь множество некластеризованных индексов, поскольку индекс в некластеризованном индексе хранится в разных местах.

Например, книга может иметь более одного указателя: один в начале отображает содержание единицы книги, а второй указатель показывает указатель терминов в алфавитном порядке.
Индекс некластеризации определяется в поле неупорядочения таблицы. Этот тип метода индексирования помогает повысить производительность запросов, использующих ключи, которые не назначены в качестве первичного ключа. Некластеризованный индекс позволяет добавить уникальный ключ для таблицы.

Характеристика Clusterиндекс ред.

  • Хранение данных по умолчанию и отсортированное
  • Используйте только один или несколько столбцов для индекса.
  • Помогает хранить данные и индекс вместе.
  • Фрагментация
  • Операционный отдел
  • ClusterСканирование по индексу и поиск по индексу
  • Ключевой поиск

Характеристики некластеризованных индексов

  • Хранить только значения ключей
  • Указатели на кучу/Clustered Индексные строки
  • Разрешает доступ к дополнительным данным
  • Мост к данным
  • OperaФункции индексного сканирования и индексного поиска
  • Вы можете создать некластеризованный индекс для таблицы или представления.
  • Каждая строка индекса в некластеризованном индексе хранит значение некластеризованного ключа и указатель строки.

Clustered против некластеризованного индекса в SQL: основные различия

параметры Clustered Некластеризованный
Использовать для Вы можете сортировать записи и физически хранить кластерный индекс в памяти в соответствии с порядком. Некластеризованный индекс помогает создать логический порядок строк данных и использует указатели для физических файлов данных.
Метод хранения Позволяет хранить страницы данных в конечных узлах индекса. Этот метод индексирования никогда не сохраняет страницы данных в конечных узлах индекса.
Размер Размер кластеризованного индекса довольно велик. Размер некластеризованного индекса невелик по сравнению с кластеризованным индексом.
Доступ к данным Быстрее Медленнее по сравнению с кластерным индексом
Дополнительное дисковое пространство Не требуется Требуется хранить индекс отдельно
Тип ключа По умолчанию первичные ключи таблицы представляют собой Clusterизд. Индекс. Его можно использовать с ограничением уникальности таблицы, которое действует как составной ключ.
Главная особенность Кластеризованный индекс может повысить производительность поиска данных. Его следует создавать в столбцах, которые используются в соединениях.

Пример кластеризованного индекса

В приведенном ниже примере SalesOrderDetailID — это кластеризованный индекс. Пример запроса для получения данных

SELECT CarrierTrackingNumber, UnitPrice
FROM SalesData
WHERE SalesOrderDetailID = 6

Пример кластеризованного индекса

Пример некластеризованного индекса

В приведенном ниже примере некластеризованный индекс создается для OrderQty и ProductID следующим образом.

CREATE INDEX myIndex ON
SalesData (ProductID, OrderQty)

Пример некластеризованного индекса

Следующий запрос будет получен быстрее по сравнению с кластеризованным индексом.

SELECT Product ID, OrderQty
FROM SalesData
WHERE ProductID = 714

Пример некластеризованного индекса

Преимущества Clusterиндекс ред.

Плюсы/преимущества кластерного индекса:

  • ClusterИндексы ed – идеальный вариант для диапазонов или группировок с запросами типа max, min, count.
  • В этом типе индекса поиск может идти прямо к определенной точке данных, чтобы вы могли продолжать последовательное чтение оттуда.
  • ClusterМетод индекса ed использует механизм определения местоположения для поиска записи индекса в начале диапазона.
  • Это эффективный метод поиска по диапазону, когда запрашивается диапазон значений ключа поиска.
  • Помогает свести к минимуму передачу страниц и максимизировать количество попаданий в кеш.

Преимущества некластеризованного индекса

Плюсы использования некластеризованного индекса:

  • Некластеризованный индекс помогает быстро извлекать данные из таблицы базы данных.
  • Помогает избежать накладных расходов, связанных с кластеризованным индексом.
  • Таблица может иметь несколько некластеризованных индексов. RDBMS. Таким образом, его можно использовать для создания более одного индекса.

Недостатки Clusterиндекс ред.

Вот минусы/недостатки использования кластерного индекса:

  • Множество вставок в непоследовательном порядке.
  • Кластеризованный индекс создает множество постоянных разбиений страниц, включая страницы данных, а также страницы индекса.
  • Дополнительная работа для SQL для вставок, обновлений и удалений.
  • Кластеризованному индексу требуется больше времени для обновления записей при изменении полей в кластерном индексе.
  • Листовые узлы в основном содержат страницы данных в кластерном индексе.

Недостатки некластеризованного индекса

Вот минусы/недостатки использования некластеризованного индекса:

  • Некластеризованный индекс помогает хранить данные в логическом порядке, но не позволяет физически сортировать строки данных.
  • Процесс поиска по некластеризованному индексу становится дорогостоящим.
  • Каждый раз при обновлении ключа кластеризации требуется соответствующее обновление некластеризованного индекса, поскольку в нем хранится ключ кластеризации.