Ένα ευρετήριο επιταχύνει την ανάκτηση δεδομένων. Χωρίς ένα, η βάση δεδομένων σαρώνει κάθε γραμμή για να βρει αντίστοιχες εγγραφές. Με ένα, μεταβαίνει απευθείας στις σχετικές γραμμές. Το ευρετήριο είναι μια ξεχωριστή δομή δεδομένων που αντιστοιχίζει τιμές σε τοποθεσίες. Ένα ευρετήριο βιβλίων λειτουργεί με τον ίδιο τρόπο. Αναζητάτε έναν όρο και βρίσκετε τον αριθμό σελίδας. Δεν διαβάζετε κάθε σελίδα για να τον βρείτε. Η βάση δεδομένων κάνει το ίδιο πράγμα.
Τα ευρετήρια έχουν ένα κόστος. Καταλαμβάνουν χώρο. Επιβραδύνουν τις εισαγωγές, τις ενημερώσεις και τις διαγραφές επειδή το ευρετήριο πρέπει επίσης να ενημερώνεται. Κάθε εγγραφή γίνεται πιο ακριβή. Το πλεονέκτημα είναι οι ταχύτερες αναγνώσεις. Για φόρτους εργασίας με μεγάλο φόρτο εργασίας ανάγνωσης, τα ευρετήρια είναι απαραίτητα. Για φόρτους εργασίας με μεγάλο φόρτο εργασίας εγγραφής, πάρα πολλά ευρετήρια βλάπτουν την απόδοση. Η επιλογή των στηλών που θα καταχωρηθούν στο ευρετήριο απαιτεί την κατανόηση των μοτίβων ερωτημάτων. Οι στήλες που χρησιμοποιούνται στις ρήτρες WHERE, στις συνθήκες JOIN και στις ρήτρες ORDER BY είναι καλές υποψήφιες. Οι στήλες με χαμηλή πληθικότητα, όπως μια δυαδική σημαία, είναι κακές υποψήφιες επειδή το ευρετήριο δεν περιορίζει πολύ την αναζήτηση. Τα σύνθετα ευρετήρια καλύπτουν πολλαπλές στήλες και μπορούν να εξυπηρετούν ερωτήματα που φιλτράρουν σε πολλά πεδία. Η σειρά των στηλών σε ένα σύνθετο ευρετήριο έχει σημασία. Η βάση δεδομένων μπορεί να χρησιμοποιήσει ένα σύνθετο ευρετήριο για ερωτήματα στην πρώτη στήλη, αλλά όχι μόνο στις τελευταίες στήλες. Ο σχεδιασμός ευρετηρίου είναι ένας συμβιβασμός. Ο στόχος είναι να επιταχυνθούν τα ερωτήματα που έχουν σημασία χωρίς να επιβραδυνθούν οι εγγραφές περισσότερο από όσο χρειάζεται.
Τύποι ευρετηρίου
- B-tree — προεπιλογή για τις περισσότερες βάσεις δεδομένων, καλό για ερωτήματα εύρους
- Hash — γρήγορες αναζητήσεις ισότητας, χωρίς υποστήριξη εύρους
- Bitmap — στήλες χαμηλής πληθικότητας, αναλυτικά ερωτήματα
- Πλήρες κείμενο — αναζήτηση κειμένου
- Σύνθετο — πολλαπλές στήλες σε ένα ευρετήριο
Ένας δείκτης είναι μια συντόμευση. Ανταλλάσσει την ταχύτητα εγγραφής και τον χώρο αποθήκευσης με την ταχύτητα ανάγνωσης. Χρησιμοποιήστε τον εκεί που οι αναγνώσεις έχουν μεγαλύτερη σημασία.
Comments (3)
Leave a comment