По суті, індекси необхідні для ефективного забезпечення обмежень цілісності та ефективної обробки запитів і транзакцій. Вони створюються на таблицях і переглядах. Наприклад, індекси, що використовуються в книгах, що полегшує користувачеві швидкий доступ до змісту книги, аналогічно ми маємо індекси на SQL.
Діаграма порівняння
Основа для порівняння | Кластерний індекс | Некластерний індекс |
---|---|---|
Основний | Визначає порядок зберігання рядків у таблиці в цілому. | Визначає порядок зберігання рядків у таблиці за допомогою окремої фізичної структури. |
Кількість дозволених індексів для кожної таблиці | Тільки один кластерний індекс | Кілька некластерних індексів |
Доступ до даних | Швидше | Уповільнення порівняно з кластерним індексом |
Додатковий простір на диску | Не потрібно | Потрібно зберігати індекси окремо |
Визначення кластерного індексу
Кластерний індекс використовується в основному для упорядкування рядків у таблиці. Таблиця може мати лише один кластерний індекс, оскільки рядки в таблиці можуть бути відсортовані лише в одному порядку, але є способи створення складеного кластерного індексу . Стовпці включені в кластерний індекс, а логічний або індексований порядок значень ключів такий же, як фізично збережений порядок відповідних рядків. Коли кластерного індексу для даних немає, він зберігається в купі .
Доступ до запису в купі вимагає великих витрат часу, коли кожен запис в таблиці сканується для отримання потрібних даних. У скануванні таблиці не було можливості дізнатися, чи доступно більше відповідностей. Таким чином, цей метод був дуже неефективним.
При використанні кластерного індексу доступ до даних відбувається швидше і систематично, коли таблиця організована в певному порядку. Він визначається в полі впорядкування таблиці. Використовується ключ пошуку, який визначає послідовне розташування файлу або таблиці. Кластерний індекс автоматично створюється, коли первинний ключ визначається для таблиці.
Визначення некластерного індексу
Некластерний індекс зберігає дані в одному місці, а індекси в іншому місці, а індекс має вказівки на місце зберігання даних. Таблиця може мати кілька некластерних індексів, оскільки індекс у некластерному індексі зберігається в іншому місці. Наприклад, книга може мати більше ніж один індекс, один на початку, який показує вміст одиниці книги і інший індекс в кінці, який показує індекс термінів в алфавітному порядку.
Вона визначається в полі не впорядкованої таблиці. Некластерний індекс може підвищити продуктивність запитів, які використовують ключі, відмінні від первинних ключів. Некластерний індекс автоматично створюється, коли для таблиці визначено унікальний ключ .
Ключові відмінності між кластерним та некластерним індексом
- Кількість кластерного індексу, який може мати таблиця, є лише одним. Тоді як таблиця може мати кілька некластерних індексів.
- Кластерний індекс швидше, ніж некластерний індекс, оскільки некластерний індекс має повертатися до базової таблиці. Навпаки, в кластерному індексі це не так.
- У некластерному індексі індекс зберігається в окремому місці, яке вимагає додаткового місця для зберігання. На відміну від цього, кластерний індекс зберігає дані базової таблиці в тому ж фізичному порядку, що і логічний порядок індексу, тому він не вимагає додаткового місця для зберігання.
Висновок
Кластерний індекс - це спосіб збереження даних у рядках таблиці в певному порядку. Таким чином, коли шукаються потрібні дані, впливає тільки відповідний рядок, який містить дані і представляється у вигляді виводу. З іншого боку, некластерний індекс знаходиться у фізично окремій структурі, яка посилається на базові дані, коли вона шукається. Некластерна структура може мати різний порядок сортування.