Slik viser du alle indekser i MySQL eller skjema

How Show All Indexes Mysql



MySQL databaseindeks refererer til en type datastruktur som brukes som dataorganisasjon i en database og for å hjelpe til med å fremme hastigheten på forskjellige operasjoner som utføres i MySQL.

Indekser er veldig nyttig. Uten dem må MySQL skanne hele tabellen for å finne de relevante radene og kolonnene, noe som kan være svært ineffektivt i store databaser.







Denne opplæringen vil fokusere på hvordan du viser indeksinformasjon ved å bruke SHOW INDEXES -setningen i MySQL.



Vis tabellindekser

For å vise indeksinformasjon på en tabell, bruker vi SHOW INDEXES -leddet etterfulgt av navnet på tabellen vi ønsker å få indeksinformasjonen.



Den generelle syntaksen vises som:





VIS INDEKSER tbl_name;

Vurder for eksempel en av tabellene i Sakila -eksempeldatabasen. Vi kan få indeksinformasjonen som vist i spørringen nedenfor:

BRUK sakila;

VIS INDEKSER FRA film;

Søket ovenfor viser indeksinformasjon fra filmtabellen i Sakila -databasen. Utgangen er:



Forstå indeksinformasjon

Kommandoen VIS INDEKSER viser relevant informasjon om indeksene i tabellen som er angitt.

Her er følgende vilkår og deres respektive informasjon:

  1. Bord: Dette er den første kolonnen fra utgangen. Det viser navnet på tabellen der indeksen ligger.
  2. Ikke-unikt: Den andre kolonnen viser om indeksen kan inneholde et duplikat. Verdien er en boolsk, med 1 som indikerer at indeksen kan inneholde dubletter og 0 hvis annet.
  3. Nøkkelnavn: Den tredje kolonnen viser navnet på indeksen. Etter konvensjon tar primærnøkkelen indeksnavnet PRIMARY.
  4. Seq_in_index: Den fjerde kolonnen viser kolonnesekvensnummeret i indeksen fra verdien 1.
  5. Kolonnenavn: Den femte kolonnen er ganske enkelt kolonnenavnet.
  6. Samling: Den sjette kolonnen er en seksjon som viser hvordan kolonnen blir sortert i indeksen. Det er tre sorteringsverdier, med A som stigende rekkefølge, B angir synkende rekkefølge og NULL som usortert.
  7. Kardinalitet: Den syvende kolonnen viser unikheten til dataverdien. I indekser viser det estimerte antall unike verdier i den spesifikke indeksen.
  8. Del_del: Den åttende kolonnen viser indeksprefikset med NULL, som indikerer at hele kolonnen er indeksert.
  9. Pakket: Den niende kolonnen viser hvordan indeksnøklene er pakket, med NULL som angir at nøklene ikke er pakket.
  10. Null: Den tiende kolonnen angir om kolonnen kan inneholde NULL -verdier. Ja, hvis kolonnen kan inneholde nullverdier, og tom hvis ikke.
  11. Indeks_type: Den ellevte kolonnen viser indeksmetoden som BTREE, HASH, RTREE og FULLTEXT.
  12. Kommentar: Den tolvte kolonnen viser informasjonen om en indeks som ikke er beskrevet i kolonnen.
  13. Index_comment: Den trettende kolonnen viser tilleggsinformasjon om indeksen som er angitt ved hjelp av COMMENT -attributtet når den ble opprettet.
  14. Synlig: Den fjortende kolonnen er indeksen synlig for spørringsoptimereren, med verdiene Ja og Nei.
  15. Uttrykk: Den femtende kolonnen viser om indeksen bruker et uttrykk og ikke en kolonne- eller kolonneprefiksverdi.

HINT: Informasjonen om indeksene fra SHOW INDEXES -spørringen ligner på den for SQLStatistics.

Vis skjemaindekser

Du kan også få indeksinformasjon om et skjema. Den generelle syntaksen for å oppnå dette resultatet er som følger:

VELG tabellnavn, indeksnavn FRA INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = schema_name;

Vurder spørringen nedenfor som viser informasjon om Sakila -skjemaet:

VELG tabellnavn, indeksnavn FRA informasjon_skjema.statistikk HVOR tabellskjema ='sakila';

Dette vil vise informasjon om indeksene i Sakila -skjemaet som vist i utdataene nedenfor:

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

|TABLE_NAME|INDEX_NAME|

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

|skuespiller|HOVED|

|skuespiller|idx_actor_last_name|

|adresse|HOVED|

|adresse|idx_fk_city_id|

|adresse|idx_location|

|kategori|HOVED|

|by|HOVED|

|by|idx_fk_country_id|

|land|HOVED|

|kunde|HOVED|

|kunde|idx_fk_store_id|

|kunde|idx_fk_address_id|

|kunde|idx_last_name|

|film|HOVED|

|film|idx_title|

|film|idx_fk_language_id|

|film|idx_fk_original_language_id|

|film_aktor|HOVED|

|film_aktor|HOVED|

|film_aktor|idx_fk_film_id|

|filmkategori|HOVED|

|filmkategori|HOVED|

|filmkategori|fk_film_category_category|

|film_tekst|HOVED|

|film_tekst|idx_title_description|

|film_tekst|idx_title_description|

|inventar|HOVED|

|inventar|idx_fk_film_id|

|inventar|idx_store_id_film_id|

|inventar|idx_store_id_film_id|

|----------------------------- UTGANG TRUNKERT ------------------- -------

Du kan også få informasjon fra alle skjemaene på serveren ved hjelp av spørringen vist nedenfor:

VELG tabellnavn, indeksnavn FRA informasjon_skjema.statistikk;

MERK : Søket ovenfor gir mye informasjon. Sjelden trenger du å få indekser fra alle skjemaene. Imidlertid er en prøveutgang nedenfor:

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

|TABLE_NAME|INDEX_NAME|

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

|innodb_table_stats|HOVED|

|innodb_table_stats|HOVED|

|innodb_index_stats|HOVED|

|innodb_index_stats|HOVED|

|innodb_index_stats|HOVED|

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

Konklusjon

I denne opplæringen diskuterte vi hvordan du bruker MySQL SHOW INDEXES -spørringen for å få informasjon om indeksene i en tabell. Vi så også på bruk av informasjonsskjemaet for å få informasjon om indeksene fra ett eller alle skjemaer i en MySQL -server.