Sobes.tech
Middle

Ποιοι τύποι ευρετηρίων υπάρχουν στο SQL;

sobes.tech AI

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

  • B-δέντρο (B-δέντρο): Ο πιο διαδεδομένος τύπος. Κατάλληλο για τις περισσότερες λειτουργίες ανάγνωσης, συμπεριλαμβανομένων των WHERE, LIKE, ORDER BY.

    CREATE INDEX idx_column ON table_name (column_name);
    
  • Hash (Hash): Βελτιστοποιημένο για ακριβείς αντιστοιχίσεις (=). Δεν υποστηρίζει ερωτήματα εύρους ή ταξινόμηση.

    -- Παράδειγμα σύνταξης, μπορεί να διαφέρει ανάλογα με το SGBD
    CREATE INDEX idx_column ON table_name USING HASH (column_name);
    
  • Πλήρες Κείμενο (Full-Text): Χρησιμοποιείται για αναζήτηση σε μεγάλα πεδία κειμένου (VARCHAR, TEXT).

    -- Παράδειγμα σύνταξης σε MySQL
    CREATE FULLTEXT INDEX idx_text ON table_name (text_column);
    -- Παράδειγμα σύνταξης σε PostgreSQL
    CREATE INDEX idx_text ON table_name USING GIN (to_tsvector('russian', text_column));
    
  • Χωρικό (Spatial): Για την ευρετηρίαση γεωγραφικών δεδομένων (σημεία, γραμμές, πολύγωνα). Χρησιμοποιείται με τύπους δεδομένων όπως GEOMETRY ή GEOGRAPHY.

    -- Παράδειγμα σύνταξης σε MySQL
    CREATE SPATIAL INDEX idx_geo ON table_name (spatial_column);
    -- Παράδειγμα σύνταξης σε PostgreSQL
    CREATE INDEX idx_geo ON table_name USING GIST (spatial_column);
    
  • GIN (Γενικευμένο Αντίστροφο Δείκτη) και GiST (Γενικευμένο Δέντρο Αναζήτησης) στο PostgreSQL: Ευέλικτοι τύποι δείκτη, κατάλληλοι για διάφορες εργασίες, συμπεριλαμβανομένης της πλήρους αναζήτησης κειμένου, ευρετηρίαση πινάκων και JSON.

  • Ομαδοποίηση (Clustered): Ορίζει τη φυσική σειρά των γραμμών στον πίνακα. Ένας πίνακας μπορεί να έχει μόνο έναν ομαδοποιημένο δείκτη. Συχνά βασίζεται στο πρωτεύον κλειδί.

    -- Κατά την δήλωση του πρωτεύοντος κλειδιού, συχνά δημιουργείται ομαδοποιημένος δείκτης
    CREATE TABLE table_name (
        id INT PRIMARY KEY CLUSTERED, -- Στο SQL Server
        ...
    );
    
  • Μη-ομαδοποιημένος (Non-Clustered): Ξεχωριστή δομή δεδομένων που αποθηκεύει ζεύγη "τιμή στήλης (ή στήλες) + δείκτη στη γραμμή δεδομένων". Ένας πίνακας μπορεί να έχει πολλούς μη-ομαδοποιημένους δείκτες.

Σύγκριση:

Τύπος δείκτη Εφαρμογή Λειτουργίες
B-δέντρο Γενικό, οι περισσότεροι τύποι δεδομένων =, <, >, <=, >=, BETWEEN, LIKE (αρχή)
Hash Ακριβής αντιστοιχίσεις (=) =
Πλήρες Κείμενο Αναζήτηση κειμένου MATCH AGAINST (MySQL), to_tsquery (PostgreSQL)
Χωρικό Γεωγραφικά δεδομένα Χωρικές λειτουργίες
Ομαδοποίηση Φυσική σειρά γραμμών Επιταχύνει την επιλογή εύρους
Μη-ομαδοποιημένος Επιτάχυνση αναζήτησης σε ευρετηριασμένες στήλες =, <, >, <= και άλλα