Կլաստեր ընդդեմ ոչ կլաստերային ինդեքս
Ցուցանիշները շատ կարևոր են ցանկացած տվյալների բազայում: Դրանք օգտագործվում են աղյուսակներից տվյալների որոնման արդյունավետությունը բարելավելու համար: Դրանք տրամաբանորեն և ֆիզիկապես անկախ են կապված աղյուսակների տվյալներից: Հետևաբար, ինդեքսները կարող են գցել, վերստեղծվել և վերակառուցվել՝ առանց բազային աղյուսակների տվյալների վրա ազդելու: Oracle սերվերը կարող է ավտոմատ կերպով պահպանել իր ինդեքսները՝ առանց որևէ DBA-ի ներգրավման, երբ հարակից աղյուսակները տեղադրվեն, թարմացվեն և ջնջվեն: Կան մի քանի ինդեքսների տեսակներ. Ահա դրանցից մի քանիսը:
1. B-tree ինդեքսներ
2. Bitmap ինդեքսներ
3. Գործառույթների վրա հիմնված ինդեքսներ
4. Հակադարձ բանալի ինդեքսներ
5. B-tree կլաստերի ինդեքսներ
Ի՞նչ է ոչ կլաստերային ինդեքսը:
Վերոնշյալ ինդեքսի տեսակներից հետևյալն են ոչ կլաստերային ինդեքսները:
• B-tree ինդեքս
• Bitmap ինդեքս
• Ֆունկցիայի վրա հիմնված ինդեքս
• Հակադարձ բանալիների ինդեքսներ
B-tree ինդեքսները տվյալների բազաների ամենալայն կիրառվող ինդեքսային տեսակն են: Եթե CREATE INDEX հրամանը տրվում է տվյալների բազայում, առանց տեսակ նշելու, Oracle սերվերը ստեղծում է b-tree ինդեքս: Երբ որոշակի սյունակի վրա ստեղծվում է b-tree ինդեքս, Oracle սերվերը պահպանում է սյունակի արժեքները և հղում է անում աղյուսակի իրական տողին:
Bitmap ինդեքսները ստեղծվում են, երբ սյունակի տվյալները շատ ընտրովի չեն: Դա նշանակում է, որ սյունակի տվյալները ցածր կարդինալություն ունեն: Սրանք հատուկ նախագծված են տվյալների պահեստների համար, և լավ չէ օգտագործել bitmap ինդեքսները խիստ թարմացվող կամ գործարքային աղյուսակների վրա:
Ֆունկցիոնալ ինդեքսները գալիս են Oracle 8i-ից: Այստեղ ինդեքսավորված սյունակում օգտագործվում է ֆունկցիա: Հետևաբար, ֆունկցիոնալ ինդեքսում սյունակի տվյալները սովորական ձևով չեն դասակարգվում: Այն տեսակավորում է սյունակների արժեքները ֆունկցիան կիրառելուց հետո։ Սրանք շատ օգտակար են, երբ ընտրված հարցման WHERE փակման դեպքում օգտագործվում է ֆունկցիա:
Հակադարձ բանալիների ինդեքսները շատ հետաքրքիր ինդեքսների տեսակ են: Ենթադրենք, որ սյունակը պարունակում է բազմաթիվ եզակի տողային տվյալներ, ինչպիսիք են «cityA», «cityB», «cityC»… և այլն: Բոլոր արժեքներն ունեն օրինաչափություն. Առաջին չորս նիշերը նույնն են, իսկ հաջորդ մասերը փոխված են: Այսպիսով, երբ REVERSE բանալի ինդեքսը ստեղծվի այս սյունակում, Oracle-ը կփոխի տողը և կվերականգնի այն b-tree ինդեքսում:
Վերոհիշյալ ինդեքսի տեսակները ՈՉ ԿԼԱՍՏԵՐ ինդեքսներ են: Դա նշանակում է, որ ինդեքսավորված տվյալները պահվում են աղյուսակից դուրս և պահվում է աղյուսակի տեսակավորված հղում:
Ի՞նչ է կլաստերային ինդեքսը:
Կլաստերային ինդեքսները ինդեքսների հատուկ տեսակ են: Այն պահպանում է տվյալները՝ ըստ աղյուսակի տվյալների ֆիզիկապես պահպանման եղանակի: Այսպիսով, մեկ աղյուսակի համար շատ կլաստերային ինդեքսներ չեն կարող լինել: Մեկ աղյուսակը կարող է ունենալ միայն մեկ կլաստերային ինդեքս։
Ո՞րն է տարբերությունը կլաստերային և ոչ կլաստերային ինդեքսների միջև:
1. Աղյուսակը կարող է ունենալ միայն մեկ կլաստերային ինդեքս, սակայն մեկ աղյուսակում կարող է լինել մինչև 249 ոչ կլաստերային ինդեքս։
2. Կլաստերային ինդեքսը ավտոմատ կերպով ստեղծվում է, երբ ստեղծվում է հիմնական բանալի, բայց ոչ կլաստերային ինդեքսը ստեղծվում է, երբ ստեղծվում է եզակի բանալի:
3. Կլաստերացված ինդեքսի տրամաբանական հերթականությունը համընկնում է աղյուսակի տվյալների ֆիզիկական կարգի հետ, բայց ոչ կլաստերային ինդեքսներում՝ ոչ: