Різниця між кластерним та не кластерним індексом

Індекс кластера проти не кластеру

Індекси дуже важливі в будь-якій базі даних. Вони використовуються для підвищення продуктивності отримання даних із таблиць. Вони логічно та фізично не залежать від даних у супутніх таблицях. Тому індекси можна скидати, відтворювати та відновлювати, не впливаючи на дані базових таблиць. Сервер Oracle може автоматично підтримувати свої індекси без участі DBA, коли відповідні таблиці вставляються, оновлюються та видаляються. Існує кілька типів індексу. Ось деякі з них.

1. B-дерева індекси

2. Растрові індекси

3. Показники на основі функцій

4. Індекси зворотного ключа

5. B-дерева кластерні індекси

Що таке індекс не кластера?

З вищенаведених типів індексів наступні - некластеризовані індекси.

• індекс B-дерева

• Растровий індекс

• Індекс на основі функцій

• індекси зворотного ключа

Індекси B-дерева є найбільш широко використовуваним типом баз даних. Якщо команда CREATE INDEX видається в базі даних, не вказуючи тип, сервер Oracle створює індекс b-дерева. Коли індекс b-дерева створюється в певному стовпці, сервер oracle зберігає значення стовпця і зберігає посилання на фактичний рядок таблиці.

Індекси бітових карт створюються, коли дані стовпців не дуже вибіркові. Це означає, що дані стовпців мають низьку кардинальність. Вони спеціально розроблені для сховищ даних, і це не добре використовувати растрові індекси на високо оновлюваних або транзакційних таблицях.

Функціональні індекси надходять від Oracle 8i. Тут функція використовується в індексованому стовпці. Тому у функціональному індексі дані стовпців не сортуються у звичайному порядку. Він сортує значення стовпців після застосування функції. Вони дуже корисні, коли функція WHERE закриття запиту вибору використовується.

Індекси зворотного ключа - дуже цікавий тип індексу. Припустимо, стовпець містить багато унікальних рядкових даних, таких як 'cityA', 'cityB', 'cityC' ... і т.д. Усі значення мають шаблон. Перші чотири символи однакові, а наступні частини змінюються. Отже, коли в цьому стовпці буде створено індекс ключа REVERSE, Oracle поверне рядок і відновить його в b-tree index.

Вищезазначені типи індексів - це НЕ КЛАСТИРОВАНІ індекси. Це означає, що індексовані дані зберігаються за межами таблиці, а відсортовані посилання на таблицю зберігаються. 

Що таке індекс кластеру?

Кластеризовані індекси - це особливий тип індексів. Він зберігає дані відповідно до способу фізичного зберігання даних таблиці. Отже, не може бути багато кластерних індексів для однієї таблиці. Одна таблиця може мати лише один кластерний індекс.

Яка різниця між кластерними та не кластеризованими індексами?

1. У таблиці може бути лише один кластерний індекс, але в одній таблиці може бути до 249 некластеризованих індексів.

2. Кластерний індекс автоматично створюється при створенні первинного ключа, але некластеризований індекс створюється при створенні унікального ключа.

3. Логічний порядок кластерного індексу збігається з фізичним порядком даних таблиці, але в некластеризованих індексах він не відповідає.