Cluster vs Non Cluster Index
אינדקסים חשובים מאוד בכל מסד נתונים. הם משמשים לשיפור הביצועים של אחזור נתונים מטבלאות. הם בלתי תלויים מבחינה לוגית ופיזית בנתונים בטבלאות המשויכות. לכן, ניתן להוריד אינדקסים, ליצור מחדש ולבנות מחדש מבלי להשפיע על הנתונים של טבלאות הבסיס. שרת Oracle יכול לשמור באופן אוטומטי על האינדקסים שלו ללא כל מעורבות של DBA, כאשר הטבלאות הקשורות מוכנסות, מעודכנות ונמחקות. ישנם מספר סוגי אינדקס. הנה כמה מהם.
1. אינדקסים של עץ B
2. אינדקסים של מפת סיביות
3. אינדקסים מבוססי פונקציות
4. אינדקסים של מפתח הפוך
5. אינדקסים של אשכול עץ B
מהו אינדקס לא – אשכול?
מתוך סוגי האינדקסים שלעיל, להלן אינדקסים לא מקובצים.
• B-tree index
• אינדקס מפת סיביות
• אינדקס מבוסס פונקציות
• אינדקסים של מפתח הפוך
אינדקסים של B-tree הם סוג האינדקסים הנפוצים ביותר של מסדי נתונים. אם הפקודה CREATE INDEX מונפקת במסד הנתונים, מבלי לציין סוג, שרת Oracle יוצר אינדקס b-tree. כאשר אינדקס b-tree נוצר בעמודה ספציפית, שרת אורקל מאחסן את ערכי העמודה ושומר הפניה לשורה בפועל של הטבלה.
אינדקסים של מפת סיביות נוצרים כאשר נתוני העמודות אינם סלקטיביים במיוחד. כלומר, לנתוני העמודה יש קרדינליות נמוכה. אלה תוכננו במיוחד עבור מחסני נתונים, וזה לא טוב להשתמש באינדקסים של מפת סיביות בטבלאות הניתנות לעדכון או עסקאות.
אינדקסים פונקציונליים מגיעים מ-Oracle 8i. כאן, נעשה שימוש בפונקציה בעמודה המאונדקסת. לכן, באינדקס פונקציונלי, נתוני העמודות אינם ממוינים בדרך הרגילה. הוא ממיין את ערכי העמודות לאחר החלת הפונקציה. אלה שימושיים מאוד כאשר ה-WHERE close של שאילתת הבחירה משמש כפונקציה.
אינדקסים עם מפתח הפוך הם סוג אינדקס מעניין מאוד. הבה נניח שעמודה מכילה נתוני מחרוזת ייחודיים רבים כמו 'cityA', 'cityB', 'cityC'… וכו'. לכל הערכים יש דפוס. ארבע התווים הראשונים זהים והחלקים הבאים משתנים. אז כאשר נוצר אינדקס מפתח REVERSE בעמודה זו, אורקל תהפוך את המחרוזת ותשחזר אותה באינדקס b-tree.
סוגי האינדקסים המוזכרים לעיל הם אינדקסים ללא אשכולות. כלומר, נתונים שנוספו לאינדקס מאוחסנים מחוץ לטבלה, והפניה ממוינת לטבלה נשמרת.
מהו אינדקס מקובץ?
אינדקסים מקובצים הם סוג מיוחד של אינדקסים. הוא מאחסן נתונים בהתאם לאופן אחסון נתוני טבלה פיזית. לכן, לא יכולים להיות הרבה אינדקסים מקובצים לטבלה אחת. טבלה אחת יכולה לכלול רק אינדקס מקובץ אחד.
מה ההבדל בין אינדקסים מקובצים ואינדקסים לא מקובצים?
1. טבלה יכולה לכלול רק אינדקס מקובץ אחד, אבל יכולים להיות עד 249 אינדקסים לא מקובצים בטבלה אחת.
2. אינדקס מקובץ נוצר אוטומטית כאשר מפתח ראשי נוצר, אך אינדקס לא מקובץ נוצר כאשר מפתח ייחודי נוצר.
3. הסדר הלוגי של האינדקס המקובץ תואם לסדר הפיזי של נתוני הטבלה, אבל באינדקסים שאינם מקובצים, זה לא מתאים.