Πώς να εμφανίσετε όλα τα ευρετήρια σε MySQL ή Schema

How Show All Indexes Mysql



Ο δείκτης βάσης δεδομένων MySQL αναφέρεται σε έναν τύπο δομής δεδομένων που χρησιμοποιείται ως οργάνωση δεδομένων σε μια βάση δεδομένων και για να προωθήσει την ταχύτητα των διαφόρων λειτουργιών που εκτελούνται στο MySQL.

Τα ευρετήρια είναι πολύ χρήσιμα. Χωρίς αυτά, η MySQL πρέπει να σαρώσει ολόκληρο τον πίνακα για να βρει τις σχετικές γραμμές και στήλες, οι οποίες μπορεί να είναι πολύ αναποτελεσματικές σε μεγάλες βάσεις δεδομένων.







Αυτό το σεμινάριο θα επικεντρωθεί στον τρόπο προβολής πληροφοριών ευρετηρίου χρησιμοποιώντας τη ρήτρα SHOW INDEXES στο MySQL.



Εμφάνιση ευρετηρίων πίνακα

Για να εμφανίσουμε πληροφορίες ευρετηρίου σε έναν πίνακα, χρησιμοποιούμε τη ρήτρα ΕΜΦΑΝΙΣΗ ΕΥΡΕΤΗΡΙΩΝ ακολουθούμενη από το όνομα του πίνακα που επιθυμούμε για να λάβουμε τις πληροφορίες ευρετηρίου.



Η γενική σύνταξη εμφανίζεται ως εξής:





ΕΜΦΑΝΙΣΗ ΕΥΡΕΤΗΡΙΩΝ tbl_name;

Για παράδειγμα, εξετάστε έναν από τους πίνακες στη βάση δεδομένων δείγματος Sakila. Μπορούμε να λάβουμε τις πληροφορίες ευρετηρίου όπως φαίνεται στο παρακάτω ερώτημα:

ΧΡΗΣΗ sakila?

ΕΜΦΑΝΙΣΗ ΕΥΡΕΤΗΡΙΩΝ ΑΠΟ ΤΗΝ ΤΑΙΝΙΑ

Το παραπάνω ερώτημα θα εμφανίσει πληροφορίες ευρετηρίου από τον πίνακα ταινιών στη βάση δεδομένων Sakila. Η έξοδος είναι:



Κατανόηση πληροφοριών ευρετηρίου

Η εντολή SHOW INDEXES εμφανίζει τις σχετικές πληροφορίες σχετικά με τους δείκτες στον καθορισμένο πίνακα.

Ακολουθούν οι ακόλουθοι όροι και οι αντίστοιχες πληροφορίες που παρέχονται:

  1. Τραπέζι: Αυτή είναι η πρώτη στήλη από την έξοδο. Εμφανίζει το όνομα του πίνακα όπου βρίσκεται το ευρετήριο.
  2. Μη Μοναδική: Η δεύτερη στήλη δείχνει εάν το ευρετήριο μπορεί να περιέχει διπλότυπο. Η τιμή είναι Boolean, με 1 που υποδεικνύει ότι ο δείκτης μπορεί να περιέχει διπλότυπα και 0, αν δεν συμβαίνει διαφορετικά.
  3. Όνομα_κλειδιού: Η τρίτη στήλη δείχνει το όνομα του ευρετηρίου. Κατά συνθήκη, το κύριο κλειδί παίρνει το όνομα ευρετηρίου του PRIMARY.
  4. Seq_in_index: Η τέταρτη στήλη εμφανίζει τον αριθμό ακολουθίας στήλης στο ευρετήριο ξεκινώντας από την τιμή 1.
  5. Όνομα_στύλου: Η πέμπτη στήλη είναι απλώς το όνομα της στήλης.
  6. Αντιπαραβολή: Η έκτη στήλη είναι μια ενότητα που δείχνει πώς ταξινομείται η στήλη στο ευρετήριο. Υπάρχουν τρεις τιμές ταξινόμησης, με το Α να είναι η αύξουσα τάξη, το Β να δείχνει την φθίνουσα σειρά και το NULL ως μη ταξινομημένο.
  7. Καρδιοτητα: Η έβδομη στήλη δείχνει τη μοναδικότητα της τιμής δεδομένων. Σε ευρετήρια, εμφανίζει τον εκτιμώμενο αριθμό μοναδικών τιμών στο συγκεκριμένο ευρετήριο.
  8. Υπομέρος: Η όγδοη στήλη εμφανίζει το πρόθεμα ευρετηρίου με NULL, υποδεικνύοντας ότι ολόκληρη η στήλη είναι ευρετηριασμένη.
  9. Συσκευασμένα: Η ένατη στήλη δείχνει πώς είναι συσκευασμένα τα πλήκτρα ευρετηρίου, με το NULL να δείχνει ότι τα κλειδιά δεν είναι συσκευασμένα.
  10. Μηδενικό: Η δέκατη στήλη καθορίζει εάν η στήλη μπορεί να περιέχει τιμές NULL. Ναι, εάν η στήλη μπορεί να περιέχει μηδενικές τιμές και κενή αν όχι.
  11. Index_type: Η ενδέκατη στήλη δείχνει τη μέθοδο ευρετηρίου όπως BTREE, HASH, RTREE και FULLTEXT.
  12. Σχόλιο: Η δωδέκατη στήλη δείχνει τις πληροφορίες σχετικά με ένα ευρετήριο που δεν περιγράφεται στη στήλη του.
  13. Index_comment: Η δέκατη τρίτη στήλη εμφανίζει πρόσθετες πληροφορίες σχετικά με το ευρετήριο που καθορίζεται χρησιμοποιώντας το χαρακτηριστικό COMMENT όταν δημιουργείται.
  14. Ορατός: Η δέκατη τέταρτη στήλη είναι ο δείκτης ορατός στο βελτιστοποιητή ερωτήματος, με τιμές Ναι και Όχι.
  15. Εκφραση: Η δέκατη πέμπτη στήλη εμφανίζεται εάν το ευρετήριο χρησιμοποιεί μια παράσταση και όχι μια τιμή προθέματος στήλης ή στήλης.

ΙΧΝΟΣ: Οι πληροφορίες σχετικά με τους δείκτες από το ερώτημα SHOW INDEXES είναι παρόμοιες με αυτές του SQLStatistics.

Εμφάνιση ευρετηρίων σχήματος

Μπορείτε επίσης να λάβετε πληροφορίες ευρετηρίου για ένα σχήμα. Η γενική σύνταξη για την επίτευξη αυτού του αποτελέσματος είναι η παρακάτω:

SELECT table_name, index_name FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = schema_name;

Εξετάστε το παρακάτω ερώτημα που εμφανίζει πληροφορίες σχετικά με το σχήμα Sakila:

SELECT table_name, index_name FROM information_schema.statistics WHERE table_schema ='σακίλα'?

Αυτό θα εμφανίσει πληροφορίες σχετικά με τα ευρετήρια στο σχήμα Sakila όπως φαίνεται στην παρακάτω έξοδο:

+ --------------- + --------------------------------- +

|TABLE_NAME|INDEX_NAME|

+ --------------- + --------------------------------- +

|ηθοποιός|ΠΡΩΤΑΡΧΙΚΟΣ|

|ηθοποιός|idx_actor_last_name|

|διεύθυνση|ΠΡΩΤΑΡΧΙΚΟΣ|

|διεύθυνση|idx_fk_city_id|

|διεύθυνση|idx_location|

|κατηγορία|ΠΡΩΤΑΡΧΙΚΟΣ|

|πόλη|ΠΡΩΤΑΡΧΙΚΟΣ|

|πόλη|idx_fk_country_id|

|Χώρα|ΠΡΩΤΑΡΧΙΚΟΣ|

|πελάτης|ΠΡΩΤΑΡΧΙΚΟΣ|

|πελάτης|idx_fk_store_id|

|πελάτης|idx_fk_address_id|

|πελάτης|idx_last_name|

|ταινία|ΠΡΩΤΑΡΧΙΚΟΣ|

|ταινία|idx_title|

|ταινία|idx_fk_language_id|

|ταινία|idx_fk_original_language_id|

|κινηματογραφικός ηθοποιός|ΠΡΩΤΑΡΧΙΚΟΣ|

|κινηματογραφικός ηθοποιός|ΠΡΩΤΑΡΧΙΚΟΣ|

|κινηματογραφικός ηθοποιός|idx_fk_film_id|

|ταινία_κατηγορία|ΠΡΩΤΑΡΧΙΚΟΣ|

|ταινία_κατηγορία|ΠΡΩΤΑΡΧΙΚΟΣ|

|ταινία_κατηγορία|fk_film_category_category|

|film_text|ΠΡΩΤΑΡΧΙΚΟΣ|

|film_text|idx_title_description|

|film_text|idx_title_description|

|καταγραφή εμπορευμάτων|ΠΡΩΤΑΡΧΙΚΟΣ|

|καταγραφή εμπορευμάτων|idx_fk_film_id|

|καταγραφή εμπορευμάτων|idx_store_id_film_id|

|καταγραφή εμπορευμάτων|idx_store_id_film_id|

|----------------------------- ΕΞΟΔΟΣ ΔΙΑΚΟΠΤΗΣΗ ------------------- -------

Μπορείτε επίσης να λάβετε πληροφορίες από όλα τα σχήματα του διακομιστή χρησιμοποιώντας το ερώτημα που εμφανίζεται παρακάτω:

SELECT table_name, index_name FROM information_schema.statistics;

ΣΗΜΕΙΩΣΗ : Το παραπάνω ερώτημα απορρίπτει πολλές πληροφορίες. Σπάνια θα χρειαστεί να λάβετε ευρετήρια από όλα τα σχήματα. Ωστόσο, ένα δείγμα εξόδου είναι παρακάτω:

+ -------------------- + ------------ +

|TABLE_NAME|INDEX_NAME|

+ -------------------- + ------------ +

|innodb_table_stats|ΠΡΩΤΑΡΧΙΚΟΣ|

|innodb_table_stats|ΠΡΩΤΑΡΧΙΚΟΣ|

|innodb_index_stats|ΠΡΩΤΑΡΧΙΚΟΣ|

|innodb_index_stats|ΠΡΩΤΑΡΧΙΚΟΣ|

|innodb_index_stats|ΠΡΩΤΑΡΧΙΚΟΣ|

+ -------------------- + ------------ +

συμπέρασμα

Σε αυτό το σεμινάριο, συζητήσαμε πώς να χρησιμοποιήσετε το ερώτημα MySQL SHOW INDEXES για να λάβετε πληροφορίες σχετικά με τα ευρετήρια σε έναν πίνακα. Επίσης, εξετάσαμε τη χρήση του information_schema για να λάβουμε πληροφορίες σχετικά με τα ευρετήρια από ένα ή όλα τα σχήματα σε έναν διακομιστή MySQL.