Кластерный и некластерный индекс
Индексы очень важны в любой базе данных. Они используются для повышения производительности извлечения данных из таблиц. Они логически и физически независимы от данных в связанных таблицах. Поэтому индексы можно удалять, создавать заново и перестраивать, не затрагивая данные базовых таблиц. Сервер Oracle может автоматически поддерживать свои индексы без какого-либо участия администратора баз данных, когда связанные таблицы вставляются, обновляются и удаляются. Существует несколько типов индексов. Вот некоторые из них.
1. Индексы B-дерева
2. Битовые индексы
3. Функциональные индексы
4. Индексы с обратным ключом
5. Индексы кластера B-дерева
Что такое некластерный индекс?
Из приведенных выше типов индексов следующие являются некластеризованными индексами.
• Индекс B-дерева
• Битовый индекс
• Функциональный указатель
• Индексы с обратным ключом
Индексы B-tree являются наиболее широко используемым типом индексов баз данных. Если в базе данных используется команда CREATE INDEX без указания типа, сервер Oracle создает индекс b-tree. Когда индекс B-дерева создается для определенного столбца, сервер oracle сохраняет значения столбца и сохраняет ссылку на фактическую строку таблицы.
Битовые индексы создаются, когда данные столбца не очень избирательны. Это означает, что данные столбца имеют низкую кардинальность. Они специально разработаны для хранилищ данных, и не рекомендуется использовать битовые индексы для обновляемых или транзакционных таблиц.
Функциональные индексы взяты из Oracle 8i. Здесь функция используется в индексированном столбце. Поэтому в функциональном индексе данные столбцов не сортируются обычным образом. Он сортирует значения столбцов после применения функции. Это очень полезно, когда используется функция WHERE close запроса select.
Индексы с обратным ключом - очень интересный тип индексов. Предположим, что столбец содержит множество уникальных строковых данных, таких как «cityA», «cityB», «cityC» и т. д. Все значения имеют шаблон. Первые четыре символа одинаковы, а следующие части изменены. Поэтому, когда для этого столбца создается ключевой индекс REVERSE, Oracle переворачивает строку и восстанавливает ее в индексе b-дерева.
Вышеупомянутые типы индексов НЕ КЛАСТЕРИРОВАНЫ. Это означает, что индексированные данные хранятся вне таблицы, а отсортированная ссылка на таблицу сохраняется.
Что такое кластерный индекс?
Кластеризованные индексы - это особый тип индексов. Он хранит данные в соответствии со способом физического хранения табличных данных. Таким образом, для одной таблицы не может быть много кластеризованных индексов. Одна таблица может иметь только один кластеризованный индекс.
В чем разница между кластеризованными и некластеризованными индексами?
1. Таблица может иметь только один кластеризованный индекс, но в одной таблице может быть до 249 некластеризованных индексов.
2. Кластеризованный индекс создается автоматически при создании первичного ключа, а некластеризованный индекс создается при создании уникального ключа.
3. Логический порядок кластеризованного индекса соответствует физическому порядку данных таблицы, но в некластеризованных индексах это не так.