Kako prikazati sve indekse u MySQL -u ili shemi

How Show All Indexes Mysql



Indeks baze podataka MySQL odnosi se na vrstu strukture podataka koja se koristi kao organizacija podataka u bazi podataka i pomaže u poboljšanju brzine različitih operacija koje se izvode u MySQL -u.

Indeksi su od velike pomoći. Bez njih, MySQL mora skenirati cijelu tablicu kako bi pronašao odgovarajuće retke i stupce, što može biti vrlo neučinkovito u velikim bazama podataka.







Ovaj vodič će se usredotočiti na to kako pregledati podatke o indeksu pomoću klauzule SHOW INDEXES u MySQL -u.



Pokaži indekse tablice

Za prikaz indeksnih podataka u tablici, koristimo klauzulu SHOW INDEXES iza koje slijedi naziv tablice u koju želimo dobiti informacije o indeksu.



Opća sintaksa prikazana je ovako:





PRIKAŽI INDEKSE tbl_name;

Na primjer, razmotrite jednu od tablica u uzorkovnoj bazi podataka Sakila. Informacije o indeksu možemo dobiti kako je prikazano u donjem upitu:

KORISTITE sakila;

PRIKAŽI INDEKSE IZ filma;

Gornji upit prikazat će podatke o indeksu iz tablice filma u bazi podataka Sakila. Izlaz je:



Razumijevanje informacija o indeksu

Naredba SHOW INDEXES prikazuje relevantne informacije o indeksima u navedenoj tablici.

Ovdje su navedeni sljedeći uvjeti i odgovarajući podaci:

  1. Stol: Ovo je prvi stupac iz ispisa. Prikazuje naziv tablice u kojoj se nalazi indeks.
  2. Nije jedinstveno: Drugi stupac prikazuje može li indeks sadržavati duplikat. Vrijednost je logička, s tim da 1 označava da indeks može sadržavati duplikate, a 0 ako nije drugačije.
  3. Ime_ključa: Treći stupac prikazuje naziv indeksa. Prema dogovoru, primarni ključ uzima naziv indeksa PRIMARY.
  4. Seq_in_index: Četvrti stupac prikazuje redni broj stupca u indeksu počevši od vrijednosti 1.
  5. Naziv_ stupca: Peti stupac jednostavno je naziv stupca.
  6. Usporedba: Šesti stupac je odjeljak koji prikazuje kako se stupac sortira u indeksu. Postoje tri vrijednosti razvrstavanja, pri čemu je A rastući redoslijed, B označava opadajući red, a NULL kao nerazvrstane.
  7. Kardinalnost: Sedmi stupac prikazuje jedinstvenost vrijednosti podataka. U indeksima prikazuje procijenjeni broj jedinstvenih vrijednosti u određenom indeksu.
  8. Pod_dio: Osmi stupac prikazuje prefiks indeksa s NULL, označavajući da je cijeli stupac indeksiran.
  9. Pakirano: Deveti stupac prikazuje način pakiranja indeksnih ključeva, pri čemu NULL označava da ključevi nisu pakirani.
  10. Null: Deseti stupac navodi može li stupac sadržavati NULL vrijednosti. Da, ako stupac može sadržavati null vrijednosti, a prazan ako ne.
  11. Index_type: Jedanaesti stupac prikazuje metodu indeksa kao što su BTREE, HASH, RTREE i FULLTEXT.
  12. Komentar: Dvanaesti stupac prikazuje podatke o indeksu koji nisu opisani u stupcu.
  13. Index_comment: Trinaesti stupac prikazuje dodatne informacije o indeksu specificiranom pomoću atributa COMMENT kada je kreiran.
  14. Vidljivo: Četrnaesti stupac je indeks vidljiv optimizatoru upita s vrijednostima Da i Ne.
  15. Izraz: Petnaesti stupac prikazuje ako indeks koristi izraz, a ne vrijednost prefiksa stupca ili stupca.

SAVJET: Podaci o indeksima iz upita SHOW INDEXES slični su onima SQLStatistics.

Prikaži indekse shema

Također možete dobiti indeksne podatke o shemi. Opća sintaksa za postizanje ovog rezultata je sljedeća:

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

Razmotrite donji upit koji prikazuje informacije o shemi Sakila:

SELECT table_name, index_name FROM information_schema.statistics WHERE table_schema ='sakila';

Ovo će prikazati informacije o indeksima u shemi Sakila kako je prikazano u donjem ispisu:

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

|TABLA_NAME|INDEX_NAME|

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

|glumac|PRIMARNO|

|glumac|idx_actor_last_name|

|adresa|PRIMARNO|

|adresa|idx_fk_city_id|

|adresa|idx_location|

|kategorija|PRIMARNO|

|Grad|PRIMARNO|

|Grad|idx_fk_country_id|

|zemlja|PRIMARNO|

|kupac|PRIMARNO|

|kupac|idx_fk_store_id|

|kupac|idx_fk_adresa_id|

|kupac|idx_last_name|

|film|PRIMARNO|

|film|idx_title|

|film|idx_fk_language_id|

|film|idx_fk_original_language_id|

|filmski glumac|PRIMARNO|

|filmski glumac|PRIMARNO|

|filmski glumac|idx_fk_film_id|

|film_kategorija|PRIMARNO|

|film_kategorija|PRIMARNO|

|film_kategorija|fk_film_category_category|

|filmski_tekst|PRIMARNO|

|filmski_tekst|idx_title_description|

|filmski_tekst|idx_title_description|

|inventar|PRIMARNO|

|inventar|idx_fk_film_id|

|inventar|idx_store_id_film_id|

|inventar|idx_store_id_film_id|

|----------------------------- IZLAZ TRUNCIRAN ------------------- -------

Također možete dobiti informacije iz svih shema na poslužitelju pomoću dolje prikazanog upita:

SELECT table_name, index_name FROM information_schema.statistics;

BILJEŠKA : Gornji upit izbacuje mnogo informacija. Rijetko ćete morati dobiti indekse iz svih shema. Međutim, primjer uzorka je ispod:

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

|TABLA_NAME|INDEX_NAME|

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

|innodb_table_stats|PRIMARNO|

|innodb_table_stats|PRIMARNO|

|innodb_index_stats|PRIMARNO|

|innodb_index_stats|PRIMARNO|

|innodb_index_stats|PRIMARNO|

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

Zaključak

U ovom smo vodiču raspravljali o tome kako koristiti upit MySQL SHOW INDEXES za dobivanje informacija o indeksima u tablici. Također smo pogledali korištenje information_schema za dobivanje informacija o indeksima iz jedne ili svih shema na MySQL poslužitelju.