Τι είναι το ευρετήριο;
Το ευρετήριο είναι ένα κλειδί που δημιουργείται από μία ή περισσότερες στήλες στη βάση δεδομένων που επιταχύνει τη λήψη σειρών από τον πίνακα ή την προβολή. Αυτό το κλειδί βοηθά μια βάση δεδομένων όπως Oracle, SQL Server, MySQL κ.λπ. να εντοπίζει γρήγορα τη σειρά που σχετίζεται με τις βασικές τιμές.
Δύο τύποι ευρετηρίων είναι:
- Δείκτης συμπλέγματος
- Μη συγκεντρωτικός δείκτης
Σε αυτό το σεμινάριο, θα μάθετε:
- Τι είναι το ευρετήριο;
- Τι είναι το ευρετήριο συμπλέγματος;
- Τι είναι το ευρετήριο χωρίς συμπλέγματα;
- Χαρακτηριστικό του δείκτη συμπλέγματος
- Χαρακτηριστικά των μη συγκεντρωτικών ευρετηρίων
- Ένα παράδειγμα ευρετηρίου συμπλέγματος
- Ένα παράδειγμα ευρετηρίου χωρίς συμπλέγματα
- Διαφορές μεταξύ ευρετηρίου συμπλέγματος και ευρετηρίου χωρίς συμπλέγματα
- Πλεονεκτήματα του Clustered Index
- Πλεονεκτήματα του μη συμπλέγματος ευρετηρίου
- Μειονεκτήματα του συμπλέγματος ευρετηρίου
- Μειονεκτήματα του μη συμπλέγματος ευρετηρίου
Τι είναι το ευρετήριο συμπλέγματος;
Ο δείκτης συμπλέγματος είναι ένας τύπος ευρετηρίου που ταξινομεί τις σειρές δεδομένων στον πίνακα με τις βασικές τιμές τους. Στη βάση δεδομένων, υπάρχει μόνο ένας δείκτης συμπλέγματος ανά πίνακα.
Ένα ευρετήριο συμπλέγματος ορίζει τη σειρά με την οποία αποθηκεύονται τα δεδομένα στον πίνακα, η οποία μπορεί να ταξινομηθεί με έναν μόνο τρόπο. Έτσι, μπορεί να υπάρχει ένας μόνο δείκτης συμπλέγματος για κάθε πίνακα. Σε ένα RDBMS, συνήθως, το πρωτεύον κλειδί σάς επιτρέπει να δημιουργήσετε ένα ευρετήριο συμπλέγματος βάσει αυτής της συγκεκριμένης στήλης.
Τι είναι το ευρετήριο χωρίς συμπλέγματα;
Ένα ευρετήριο χωρίς συμπλέγματα αποθηκεύει τα δεδομένα σε μια θέση και δείκτες σε άλλη τοποθεσία. Το ευρετήριο περιέχει δείκτες για τη θέση αυτών των δεδομένων. Ένας μεμονωμένος πίνακας μπορεί να έχει πολλά ευρετήρια χωρίς συμπλέγματα, καθώς ένα ευρετήριο στο ευρετήριο χωρίς συστάδες αποθηκεύεται σε διαφορετικές θέσεις.
Για παράδειγμα, ένα βιβλίο μπορεί να έχει περισσότερα από ένα ευρετήρια, ένα στην αρχή, το οποίο εμφανίζει τα περιεχόμενα μιας μονάδας βιβλίου, ενώ το δεύτερο ευρετήριο δείχνει το ευρετήριο των όρων με αλφαβητική σειρά.
Ένα ευρετήριο μη ομαδοποίησης ορίζεται στο πεδίο μη ταξινόμησης του πίνακα. Αυτός ο τύπος μεθόδου ευρετηρίασης σάς βοηθά να βελτιώσετε την απόδοση των ερωτημάτων που χρησιμοποιούν κλειδιά τα οποία δεν έχουν εκχωρηθεί ως κύριο κλειδί. Ένα ευρετήριο χωρίς σύμπλεγμα σάς επιτρέπει να προσθέσετε ένα μοναδικό κλειδί για έναν πίνακα.
ΒΑΣΙΚΗ ΔΙΑΦΟΡΑ
- Το ευρετήριο συμπλέγματος είναι ένας τύπος ευρετηρίου που ταξινομεί τις σειρές δεδομένων στον πίνακα με τις βασικές τιμές τους, ενώ το ευρετήριο μη συμπλέγματος αποθηκεύει τα δεδομένα σε μια θέση και δείκτες σε άλλη τοποθεσία.
- Το ευρετήριο συμπλέγματος αποθηκεύει σελίδες δεδομένων στους κόμβους φύλλων του ευρετηρίου, ενώ η μέθοδος μη συμπλέγματος ευρετηρίου δεν αποθηκεύει ποτέ σελίδες δεδομένων στους κόμβους φύλλων του ευρετηρίου.
- Το ευρετήριο συμπλέγματος δεν απαιτεί επιπλέον χώρο στο δίσκο, ενώ το ευρετήριο μη συμπλέγματος απαιτεί επιπλέον χώρο στο δίσκο.
- Ο δείκτης συμπλέγματος προσφέρει ταχύτερη πρόσβαση σε δεδομένα, από την άλλη πλευρά, ο δείκτης μη συμπλέγματος είναι πιο αργός.
Χαρακτηριστικό του δείκτη συμπλέγματος
- Προεπιλεγμένη και ταξινομημένη αποθήκευση δεδομένων
- Χρησιμοποιήστε μόνο μία ή περισσότερες από μία στήλες για ένα ευρετήριο
- Σας βοηθά να αποθηκεύσετε δεδομένα και ευρετήριο μαζί
- Θρυμματισμός
- Λειτουργίες
- Σάρωση ευρετηρίου συμπλέγματος και αναζήτηση ευρετηρίου
- Αναζήτηση κλειδιών
Χαρακτηριστικά των μη συγκεντρωτικών ευρετηρίων
- Αποθηκεύστε μόνο τις βασικές τιμές
- Δείκτες προς σειρές Heap / Clustered Index
- Επιτρέπει πρόσβαση σε δευτερεύοντα δεδομένα
- Γέφυρα στα δεδομένα
- Λειτουργίες σάρωσης ευρετηρίου και αναζήτησης ευρετηρίου
- Μπορείτε να δημιουργήσετε ένα μη κλειστό ευρετήριο για έναν πίνακα ή μια προβολή
- Κάθε σειρά ευρετηρίου στο ευρετήριο χωρίς αποκλεισμούς αποθηκεύει την τιμή κλειδιού χωρίς αποκλεισμούς και έναν εντοπιστή σειράς
Ένα παράδειγμα ευρετηρίου συμπλέγματος
Στο παρακάτω παράδειγμα, το SalesOrderDetailID είναι το ευρετήριο συμπλέγματος. Δείγμα ερωτήματος για ανάκτηση δεδομένων
SELECT CarrierTrackingNumber, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6
Ένα παράδειγμα ευρετηρίου χωρίς συμπλέγματα
Στο παρακάτω παράδειγμα, δημιουργείται ένα ευρετήριο χωρίς συμπλέγματα στο OrderQty και στο ProductID ως εξής
CREATE INDEX myIndex ONSalesData (ProductID, OrderQty)
Το ακόλουθο ερώτημα θα ανακτηθεί γρηγορότερα σε σύγκριση με το ευρετήριο συμπλέγματος.
SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714
Διαφορές μεταξύ ευρετηρίου συμπλέγματος και ευρετηρίου χωρίς συμπλέγματα
Παράμετροι | Ομαδοποιημένα | Χωρίς συστάδες |
---|---|---|
Χρησιμοποιήστε για | Μπορείτε να ταξινομήσετε τις εγγραφές και να αποθηκεύσετε το ευρετήριο συμπλέγματος φυσικά στη μνήμη σύμφωνα με την παραγγελία. | Ένα ευρετήριο χωρίς σύμπλεγμα σάς βοηθά να δημιουργήσετε μια λογική σειρά για σειρές δεδομένων και χρησιμοποιεί δείκτες για αρχεία φυσικών δεδομένων. |
Μέθοδος αποθήκευσης | Σας επιτρέπει να αποθηκεύετε σελίδες δεδομένων στους κόμβους των φύλλων του ευρετηρίου. | Αυτή η μέθοδος ευρετηρίασης δεν αποθηκεύει ποτέ σελίδες δεδομένων στους κόμβους των φύλλων του ευρετηρίου. |
Μέγεθος | Το μέγεθος του δείκτη συμπλέγματος είναι αρκετά μεγάλο. | Το μέγεθος του ευρετηρίου χωρίς συστάδες είναι μικρό σε σύγκριση με το δείκτη συμπλέγματος. |
Πρόσβαση σε δεδομένα | Γρηγορότερα | Αργότερα σε σύγκριση με το δείκτη ομαδοποίησης |
Πρόσθετος χώρος στο δίσκο | Δεν απαιτείται | Απαιτείται για την αποθήκευση του ευρετηρίου ξεχωριστά |
Τύπος κλειδιού | Από προεπιλογή, τα κύρια κλειδιά του πίνακα είναι ένας δείκτης συμπλέγματος. | Μπορεί να χρησιμοποιηθεί με μοναδικό περιορισμό στο τραπέζι που λειτουργεί ως σύνθετο κλειδί. |
Κύριο χαρακτηριστικό | Ένα ευρετήριο συμπλέγματος μπορεί να βελτιώσει την απόδοση της ανάκτησης δεδομένων. | Θα πρέπει να δημιουργηθεί σε στήλες που χρησιμοποιούνται σε συνδέσεις. |
Πλεονεκτήματα του Clustered Index
Τα πλεονεκτήματα / οφέλη του ευρετηρίου συμπλέγματος είναι:
- Τα ευρετήρια συμπλέγματος είναι μια ιδανική επιλογή για εύρος ή ομαδοποίηση με ερωτήματα τύπου max, min, count
- Σε αυτόν τον τύπο ευρετηρίου, μια αναζήτηση μπορεί να μεταβεί κατευθείαν σε ένα συγκεκριμένο σημείο δεδομένων, ώστε να μπορείτε να συνεχίσετε να διαβάζετε διαδοχικά από εκεί.
- Η μέθοδος ευρετηρίου συμπλέγματος χρησιμοποιεί μηχανισμό εντοπισμού για τον εντοπισμό καταχώρησης ευρετηρίου στην αρχή ενός εύρους.
- Είναι μια αποτελεσματική μέθοδος για αναζητήσεις εύρους όταν ζητείται ένα εύρος τιμών κλειδιών αναζήτησης.
- Σας βοηθά να ελαχιστοποιήσετε τις μεταφορές σελίδων και να μεγιστοποιήσετε τις επισκέψεις στην κρυφή μνήμη.
Πλεονεκτήματα του μη συμπλέγματος ευρετηρίου
Πλεονεκτήματα της χρήσης μη συμπλέγματος ευρετηρίου είναι:
- Ένα ευρετήριο μη συμπλέγματος σάς βοηθά να ανακτάτε δεδομένα γρήγορα από τον πίνακα βάσης δεδομένων.
- Σας βοηθά να αποφύγετε το γενικό κόστος που σχετίζεται με το ευρετήριο συμπλέγματος
- Ένας πίνακας μπορεί να έχει πολλαπλά ευρετήρια μη συμπλέγματος σε RDBMS. Έτσι, μπορεί να χρησιμοποιηθεί για τη δημιουργία περισσότερων από ενός ευρετηρίων.
Μειονεκτήματα του συμπλέγματος ευρετηρίου
Εδώ είναι τα μειονεκτήματα / μειονεκτήματα της χρήσης ευρετηρίου συμπλέγματος:
- Πολλά ένθετα σε μη διαδοχική σειρά
- Ένα ευρετήριο συμπλέγματος δημιουργεί πολλές σταθερές διαιρέσεις σελίδων, οι οποίες περιλαμβάνουν σελίδες δεδομένων καθώς και σελίδες ευρετηρίου.
- Επιπλέον εργασία για SQL για ένθετα, ενημερώσεις και διαγραφές.
- Ένα ευρετήριο συμπλέγματος απαιτεί περισσότερο χρόνο για την ενημέρωση των εγγραφών όταν αλλάζουν τα πεδία του ευρετηρίου συμπλέγματος.
- Οι κόμβοι φύλλων περιέχουν κυρίως σελίδες δεδομένων στο ευρετήριο συμπλέγματος.
Μειονεκτήματα του μη συμπλέγματος ευρετηρίου
Εδώ είναι τα μειονεκτήματα / μειονεκτήματα της χρήσης ευρετηρίου χωρίς συμπλέγματα:
- Ένα ευρετήριο χωρίς σύμπλεγμα σάς βοηθά να αποθηκεύετε δεδομένα με λογική σειρά, αλλά δεν επιτρέπει τη φυσική ταξινόμηση σειρών δεδομένων.
- Η διαδικασία αναζήτησης σε ευρετήριο χωρίς συμπλέγματα γίνεται δαπανηρή.
- Κάθε φορά που ενημερώνεται το κλειδί συμπλέγματος, απαιτείται μια αντίστοιχη ενημέρωση στο ευρετήριο που δεν συμπλέκεται καθώς αποθηκεύει το κλειδί συμπλέγματος.