Индекс на клъстери срещу не клъстери
Индексите са много важни във всяка база данни. Те се използват за подобряване на ефективността на извличане на данни от таблици. Те са логически и физически независими от данните в свързаните таблици. Следователно индексите могат да бъдат пускани, пресъздадени и възстановявани, без да се засяга данните на базовите таблици. Oracle сървърът може автоматично да поддържа своите индекси без участието на DBA, когато съответните таблици се вмъкват, актуализират и изтриват. Има няколко типа индекси. Ето някои от тях.
1. B-дърво индекси
2. Bitmap индекси
3. Индексни базирани на функции
4. Индекси с обратен ключ
5. B-дърво кластерни индекси
Какво е индекс без клъстери?
От горните типове индекси следващите са некластерирани индекси.
• B-дърво индекс
• Bitmap индекс
• Индекс, базиран на функции
• индекси с обратен ключ
Индексите на B-tree са най-използваният тип индекси от бази данни. Ако командата CREATE INDEX се издаде в базата данни, без да се посочва тип, сървърът на Oracle създава индекс на b-tree. Когато в конкретна колона е създаден индекс на b-tree, oracle сървърът съхранява стойностите на колоната и запазва препратка към действителния ред на таблицата.
Bitmap индексите се създават, когато данните на колоните не са много селективни. Това означава, че данните на колоните имат ниска кардиналност. Те са специално проектирани за складове за данни и не е добре да се използват растерни индекси в силно актуализируеми или транзакционни таблици.
Функционалните индекси идват от Oracle 8i. Тук в индексираната колона се използва функция. Следователно във функционален индекс данните на колоните не се сортират по нормалния начин. Той сортира стойностите на колоните след прилагане на функцията. Те са много полезни, когато функцията WHERE близо до избраната заявка се използва.
Индексът с обратен ключ е много интересен тип индекс. Нека приемем, че колоната съдържа много уникални низови данни като 'cityA', 'cityB', 'cityC' ... и т.н. Всички стойности имат шаблон. Първите четири знака са еднакви, а следващите части се променят. Така че, когато REVERSE ключовият индекс се създаде в тази колона, Oracle ще обърне низ и ще го възстанови в b-tree индекс.
Посочените по-горе типове индекси са НЕ КЛАСТИРАНИ индекси. Това означава, че индексираните данни се съхраняват извън таблицата и се съхранява сортирана препратка към таблицата.
Какво е клъстериран индекс?
Клъстерираните индекси са специален тип индекси. Тя съхранява данни според начина на физическо съхранение на табличните данни. Така че, не може да има много клъстерирани индекси за една таблица. Една таблица може да има само един клъстер индекс.
Каква е разликата между индексите на клъстерирани и не клъстерирани? 1. Таблицата може да има само един клъстериран индекс, но може да има до 249 некластерирани индекса в една таблица. 2. Клъстериран индекс се създава автоматично, когато се създаде първичен ключ, но некластериран индекс се създава, когато се създаде уникален ключ. 3. Логическият ред на клъстерирания индекс съвпада с физическия ред на данните от таблицата, но в некластерираните индекси не. |