Ποιοι τύποι ευρετηρίων υπάρχουν στο 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) |
| Χωρικό | Γεωγραφικά δεδομένα | Χωρικές λειτουργίες |
| Ομαδοποίηση | Φυσική σειρά γραμμών | Επιταχύνει την επιλογή εύρους |
| Μη-ομαδοποιημένος | Επιτάχυνση αναζήτησης σε ευρετηριασμένες στήλες | =, <, >, <= και άλλα |