Cum se afișează toate indexurile în MySQL sau Schema

How Show All Indexes Mysql



Indexul bazei de date MySQL se referă la un tip de structură a datelor utilizat ca organizare a datelor într-o bază de date și pentru a ajuta la avansarea vitezei diferitelor operațiuni efectuate în MySQL.

Indexurile sunt foarte utile. Fără ele, MySQL trebuie să scaneze întregul tabel pentru a găsi rândurile și coloanele relevante, care pot fi foarte ineficiente în bazele de date mari.







Acest tutorial se va concentra asupra modului de vizualizare a informațiilor index folosind clauza SHOW INDEXES din MySQL.



Afișați indicii de tabel

Pentru a afișa informații despre index pe un tabel, folosim clauza SHOW INDEXES urmată de numele tabelului pe care dorim să obținem informațiile despre index.



Sintaxa generală este prezentată ca:





AFIȘAȚI INDICE tbl_name;

De exemplu, luați în considerare unul dintre tabelele din baza de date eșantion Sakila. Putem obține informații despre index așa cum se arată în interogarea de mai jos:

UTILIZAȚI sakila;

AFIȘAȚI INDICELE din film;

Interogarea de mai sus va afișa informații de index din tabelul filmului în baza de date Sakila. Ieșirea este:



Înțelegerea informațiilor despre index

Comanda SHOW INDEXES afișează informațiile relevante despre indexuri în tabelul specificat.

Iată următorii termeni și informațiile respective furnizate:

  1. Masa: Aceasta este prima coloană din ieșire. Acesta arată numele tabelului în care se află indexul.
  2. Non-unic: A doua coloană arată dacă indexul poate conține un duplicat. Valoarea este booleană, 1 indicând indexul care poate conține duplicate și 0 dacă altfel.
  3. Key_name: A treia coloană arată numele indexului. Prin convenție, cheia primară ia numele indexului PRIMARY.
  4. Seq_in_index: Cea de-a patra coloană afișează numărul secvenței de coloane din index începând de la valoarea 1.
  5. Numele_coloanei: A cincea coloană este pur și simplu numele coloanei.
  6. Colaţionare: A șasea coloană este o secțiune care arată modul în care coloana este sortată în index. Există trei valori de sortare, A fiind ordinea crescătoare, B indicând ordinea descendentă și NULL ca neordonat.
  7. Cardinalitate: Cea de-a șaptea coloană arată unicitatea valorii datelor. În indici, arată numărul estimat de valori unice în indexul specific.
  8. Sub_partea: Cea de-a opta coloană afișează prefixul indexului cu NULL, indicând că întreaga coloană este indexată.
  9. Bătătorit: Cea de-a noua coloană arată cum sunt împachetate cheile index, iar NULL indică faptul că cheile nu sunt împachetate.
  10. Nul: Cea de-a zecea coloană specifică dacă coloana poate conține valori NULL. Da, dacă coloana poate conține valori nule și gol dacă nu.
  11. Tip_index: Cea de-a unsprezecea coloană arată metoda indexului, cum ar fi BTREE, HASH, RTREE și FULLTEXT.
  12. Cometariu: Cea de-a douăsprezecea coloană arată informațiile despre un index care nu este descris în coloana sa.
  13. Comentariu_indice: Cea de-a treisprezecea coloană prezintă informații suplimentare despre indexul specificat folosind atributul COMMENT când a fost creat.
  14. Vizibil: Cea de-a paisprezecea coloană este indexul vizibil pentru optimizatorul de interogare, cu valori Da și Nu.
  15. Expresie: Cea de-a cincisprezecea coloană se afișează dacă indexul folosește o expresie și nu o valoare de coloană sau de prefix de coloană.

ALUZIE: Informațiile despre indexuri din interogarea SHOW INDEXES sunt similare cu cele din SQLStatistics.

Afișați indexurile de schemă

De asemenea, puteți obține informații despre index despre o schemă. Sintaxa generală pentru obținerea acestui rezultat este următoarea:

SELECȚIONEAZĂ nume_tabel, nume_indice DIN INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = schema_name;

Luați în considerare interogarea de mai jos care arată informații despre schema Sakila:

SELECT nume_tabel, nume_indice DIN information_schema.statistics WHERE table_schema =„sakila”;

Aceasta va afișa informații despre indexurile din schema Sakila așa cum se arată în rezultatul de mai jos:

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

|TABLE_NAME|INDEX_NAME|

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

|actor|PRIMAR|

|actor|idx_actor_last_name|

|abordare|PRIMAR|

|abordare|idx_fk_city_id|

|abordare|locație_idx|

|categorie|PRIMAR|

|oraș|PRIMAR|

|oraș|idx_fk_country_id|

|țară|PRIMAR|

|client|PRIMAR|

|client|idx_fk_store_id|

|client|idx_fk_address_id|

|client|idx_last_name|

|film|PRIMAR|

|film|idx_title|

|film|idx_fk_language_id|

|film|idx_fk_original_language_id|

|film_actor|PRIMAR|

|film_actor|PRIMAR|

|film_actor|idx_fk_film_id|

|film_categorie|PRIMAR|

|film_categorie|PRIMAR|

|film_categorie|fk_film_category_category|

|text_film|PRIMAR|

|text_film|idx_title_description|

|text_film|idx_title_description|

|inventar|PRIMAR|

|inventar|idx_fk_film_id|

|inventar|idx_store_id_film_id|

|inventar|idx_store_id_film_id|

|----------------------------- IEȘIRE TRUNCATĂ ------------------- -------

De asemenea, puteți obține informații din toate schemele de pe server utilizând interogarea prezentată mai jos:

SELECT nume_tabel, nume_indice FROM information_schema.statistics;

NOTĂ : Interogarea de mai sus aruncă o mulțime de informații. Rareori va trebui să obțineți indexuri din toate schemele. Cu toate acestea, un exemplu de ieșire este mai jos:

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

|TABLE_NAME|INDEX_NAME|

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

|innodb_table_stats|PRIMAR|

|innodb_table_stats|PRIMAR|

|innodb_index_stats|PRIMAR|

|innodb_index_stats|PRIMAR|

|innodb_index_stats|PRIMAR|

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

Concluzie

În acest tutorial, am discutat despre modul de utilizare a interogării MySQL SHOW INDEXES pentru a obține informații despre indexurile dintr-un tabel. De asemenea, ne-am uitat la utilizarea information_schema pentru a obține informații despre indexuri de la una sau toate schemele dintr-un server MySQL.