Sobes.tech
Junior

Ποιοι τύποι ευρετηρίων υπάρχουν σε βάσεις δεδομένων;

sobes.tech AI

Απάντηση από AI

Οι βασικοί τύποι ευρετηρίων σε βάσεις δεδομένων:

  1. B-tree (B+tree):

    • Ο πιο διαδεδομένος τύπος.
    • Κατάλληλος για ένα ευρύ φάσμα λειτουργιών: εύρεση σε εύρος, ακριβής αντιστοιχία, ταξινόμηση.
    • Χρησιμοποιείται προεπιλεγμένα σε πολλά συστήματα διαχείρισης βάσεων δεδομένων (MySQL, PostgreSQL, Oracle).
  2. Δείκτες κατακερματισμού (hash):

    • Βασίζονται σε πίνακα κατακερματισμού.
    • Πολύ γρήγοροι για αναζητήσεις με ακριβή αντιστοιχία (=).
    • Δεν κατάλληλοι για αναζητήσεις σε εύρος (BETWEEN, <, >), ταξινόμηση (ORDER BY) ή αναζήτηση με μοτίβο (LIKE).
  3. Ευρετήρια πλήρους κειμένου:

    • Σχεδιασμένα για αναζήτηση σε πεδία κειμένου (BLOB, TEXT).
    • Επιτρέπουν την αναζήτηση λέξεων ή φράσεων, λαμβάνοντας υπόψη συνώνυμα και πραγματοποιώντας μορφολογική ανάλυση.
    • Παραδείγματα: MATCH...AGAINST σε MySQL/MariaDB, tsvector/tsquery σε PostgreSQL.
  4. Χωρικά ευρετήρια (R-tree):

    • Χρησιμοποιούνται για την ευρετηρίαση γεωγραφικών ή χωρικών δεδομένων.
    • Επιτρέπουν την αποτελεσματική εύρεση αντικειμένων σε συγκεκριμένη περιοχή ή όρια.
  5. Ευρετήρια bitmap (καρτέλα bits):

    • Χρησιμοποιούνται σε ορισμένα SGBD (π.χ., Oracle, PostgreSQL).
    • Κατάλληλα για πεδία με χαμηλή καρτελότητα (λίγες μοναδικές τιμές, π.χ., φύλο, κατάσταση: ενεργό/ανενεργό).
    • Μπορούν να είναι πολύ αποδοτικά για πολύπλοκα ερωτήματα με λειτουργίες AND και OR.
  6. Ομαδοποιημένο ευρετήριο (clustered):

    • Επιρρεάζει τη φυσική σειρά αποθήκευσης των γραμμών δεδομένων.
    • Μπορεί να υπάρχει μόνο ένα ομαδοποιημένο ευρετήριο ανά πίνακα.
    • Συχνά χρησιμοποιείται για το πρωτεύον κλειδί.
  7. Μη ομαδοποιημένο ευρετήριο (non-clustered):

    • Δεν καθορίζει τη φυσική σειρά των γραμμών.
    • Περιέχει δείκτες στη φυσική θέση των γραμμών δεδομένων.
    • Ένας πίνακας μπορεί να έχει πολλά μη ομαδοποιημένα ευρετήρια.
  8. Ευρετήριο κάλυψης (covering):

    • Ένα ευρετήριο που περιέχει όλες τις στήλες που χρειάζονται για την εκτέλεση ενός ερωτήματος, συμπεριλαμβανομένων των στηλών στη λίστα SELECT, των συνθηκών στο WHERE και του ORDER BY.
    • Επιτρέπει στη SGBD να μην χρειάζεται να ανατρέξει στα δεδομένα του πίνακα, επιταχύνοντας την εκτέλεση του ερωτήματος.
  9. Λειτουργικό ευρετήριο (με έκφραση):

    • Ευρετήριο που βασίζεται στο αποτέλεσμα μιας λειτουργίας ή έκφρασης σε μία ή περισσότερες στήλες.
    • Επιτρέπει την ευρετηρίαση υπολογιζόμενων τιμών.

Κατά την επιλογή του τύπου ευρετηρίου, λαμβάνονται υπόψη ο τύπος δεδομένων, η συχνότητα και η φύση των ερωτημάτων (αναζήτηση με ακριβή τιμή, εύρος, ταξινόμηση, πλήρη κείμενο κ.λπ.) και η καρτελότητα της στήλης.