Junior
Ποιοι τύποι ευρετηρίων υπάρχουν σε βάσεις δεδομένων;
sobes.tech AI
Απάντηση από AI
Οι βασικοί τύποι ευρετηρίων σε βάσεις δεδομένων:
-
B-tree (B+tree):
- Ο πιο διαδεδομένος τύπος.
- Κατάλληλος για ένα ευρύ φάσμα λειτουργιών: εύρεση σε εύρος, ακριβής αντιστοιχία, ταξινόμηση.
- Χρησιμοποιείται προεπιλεγμένα σε πολλά συστήματα διαχείρισης βάσεων δεδομένων (MySQL, PostgreSQL, Oracle).
-
Δείκτες κατακερματισμού (hash):
- Βασίζονται σε πίνακα κατακερματισμού.
- Πολύ γρήγοροι για αναζητήσεις με ακριβή αντιστοιχία (
=). - Δεν κατάλληλοι για αναζητήσεις σε εύρος (
BETWEEN,<,>), ταξινόμηση (ORDER BY) ή αναζήτηση με μοτίβο (LIKE).
-
Ευρετήρια πλήρους κειμένου:
- Σχεδιασμένα για αναζήτηση σε πεδία κειμένου (BLOB, TEXT).
- Επιτρέπουν την αναζήτηση λέξεων ή φράσεων, λαμβάνοντας υπόψη συνώνυμα και πραγματοποιώντας μορφολογική ανάλυση.
- Παραδείγματα:
MATCH...AGAINSTσε MySQL/MariaDB,tsvector/tsqueryσε PostgreSQL.
-
Χωρικά ευρετήρια (R-tree):
- Χρησιμοποιούνται για την ευρετηρίαση γεωγραφικών ή χωρικών δεδομένων.
- Επιτρέπουν την αποτελεσματική εύρεση αντικειμένων σε συγκεκριμένη περιοχή ή όρια.
-
Ευρετήρια bitmap (καρτέλα bits):
- Χρησιμοποιούνται σε ορισμένα SGBD (π.χ., Oracle, PostgreSQL).
- Κατάλληλα για πεδία με χαμηλή καρτελότητα (λίγες μοναδικές τιμές, π.χ., φύλο, κατάσταση: ενεργό/ανενεργό).
- Μπορούν να είναι πολύ αποδοτικά για πολύπλοκα ερωτήματα με λειτουργίες
ANDκαιOR.
-
Ομαδοποιημένο ευρετήριο (clustered):
- Επιρρεάζει τη φυσική σειρά αποθήκευσης των γραμμών δεδομένων.
- Μπορεί να υπάρχει μόνο ένα ομαδοποιημένο ευρετήριο ανά πίνακα.
- Συχνά χρησιμοποιείται για το πρωτεύον κλειδί.
-
Μη ομαδοποιημένο ευρετήριο (non-clustered):
- Δεν καθορίζει τη φυσική σειρά των γραμμών.
- Περιέχει δείκτες στη φυσική θέση των γραμμών δεδομένων.
- Ένας πίνακας μπορεί να έχει πολλά μη ομαδοποιημένα ευρετήρια.
-
Ευρετήριο κάλυψης (covering):
- Ένα ευρετήριο που περιέχει όλες τις στήλες που χρειάζονται για την εκτέλεση ενός ερωτήματος, συμπεριλαμβανομένων των στηλών στη λίστα
SELECT, των συνθηκών στοWHEREκαι τουORDER BY. - Επιτρέπει στη SGBD να μην χρειάζεται να ανατρέξει στα δεδομένα του πίνακα, επιταχύνοντας την εκτέλεση του ερωτήματος.
- Ένα ευρετήριο που περιέχει όλες τις στήλες που χρειάζονται για την εκτέλεση ενός ερωτήματος, συμπεριλαμβανομένων των στηλών στη λίστα
-
Λειτουργικό ευρετήριο (με έκφραση):
- Ευρετήριο που βασίζεται στο αποτέλεσμα μιας λειτουργίας ή έκφρασης σε μία ή περισσότερες στήλες.
- Επιτρέπει την ευρετηρίαση υπολογιζόμενων τιμών.
Κατά την επιλογή του τύπου ευρετηρίου, λαμβάνονται υπόψη ο τύπος δεδομένων, η συχνότητα και η φύση των ερωτημάτων (αναζήτηση με ακριβή τιμή, εύρος, ταξινόμηση, πλήρη κείμενο κ.λπ.) και η καρτελότητα της στήλης.