Hvordan du viser alle indekser i mysql eller skjema

Hvordan du viser alle indekser i mysql eller skjema
MySQL -databaseindeks refererer til en type datastruktur som brukes som dataorganisasjon i en database og for å bidra til å fremme hastigheten på forskjellige operasjoner utført i MySQL.

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

Denne opplæringen vil fokusere på hvordan du kan se indeksinformasjon ved å bruke Show Indexes Clause i MySQL.

Vis tabellindekser

For å vise indeksinformasjon på en tabell bruker vi showindeksens klausul etterfulgt av navnet på tabellen vi ønsker å få indeksinformasjonen.

Den generelle syntaksen vises som:

Vis indekser tbl_name;

Tenk for eksempel på et av tabellene i Sakila -prøvedatabasen. Vi kan få indeksinformasjonen som vist i spørringen nedenfor:

Bruk Sakila;
Vis indekser fra film;

Ovennevnte spørring vil vise indeksinformasjon fra filmtabellen i Sakila -databasen. Utgangen er:

Forstå indeksinformasjon

Show Indexes -kommandoen viser relevant informasjon om indeksene i det spesifiserte tabellen.

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

  1. Bord: Dette er den første kolonnen fra utgangen. Det viser navnet på tabellen der indeksen er bosatt.
  2. Ikke-unik: Den andre kolonnen viser om indeksen kan inneholde et duplikat. Verdien er en boolsk, med 1 som indikerer at indeksen kan inneholde duplikater og 0 hvis ellers.
  3. Key_name: Den tredje kolonnen viser navnet på indeksen. Ved konvensjon tar den primære nøkkelen indeksnavnet på primær.
  4. SEQ_IN_INDEX: Den fjerde kolonnen viser kolonnesekvensnummeret i indeksen fra verdien av 1.
  5. Kolonne_navn: Den femte kolonnen er ganske enkelt kolonnenavnet.
  6. Samling: Den sjette kolonnen er et avsnitt som viser hvordan kolonnen blir sortert i indeksen. Det er tre sorteringsverdier, med et vesen som stigende orden, B som indikerer den synkende rekkefølgen, og null som ikke-sortert.
  7. Kardinalitet: Den syvende kolonnen viser det unike med dataverdien. I indekser viser det det estimerte antallet unike verdier i den spesifikke indeksen.
  8. Sub_part: 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 indikerer at nøklene ikke er pakket.
  10. Null: Den tiende kolonnen spesifiserer om kolonnen kan inneholde nullverdier. 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 spesifisert ved hjelp av kommentarattributtet når den er opprettet.
  14. Synlig: Den fjortende kolonnen er indeksen som er synlig for spørringsoptimisatoren, med verdier av ja og nei.
  15. Uttrykk: Den femtende kolonnen vises hvis indeksen bruker et uttrykk og ikke en kolonne- eller kolonneprefiksverdi.

HINT: Informasjonen om indeksene fra Show Indexes -spørringen ligner på SQLStatistics.

Vis skjemaindekser

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

Velg tabell_navn, indeks_navn fra informasjon_schema.Statistikk der tabell_schema = “skjema_navn”;

Tenk på spørringen nedenfor som viser informasjon om Sakila -skjemaet:

Velg tabell_navn, indeks_navn fra informasjon_schema.statistikk der tabell_schema = "Sakila";

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

+---------------+-----------------------------+
| Tabell_navn | Indeks_navn |
+---------------+-----------------------------+
| skuespiller | Primær |
| skuespiller | IDX_ACTOR_LAST_NAME |
| adresse | Primær |
| adresse | idx_fk_city_id |
| adresse | idx_location |
| kategori | Primær |
| by | Primær |
| by | idx_fk_country_id |
| land | Primær |
| Kunde | Primær |
| Kunde | idx_fk_store_id |
| Kunde | idx_fk_address_id |
| Kunde | IDX_LAST_NAME |
| film | Primær |
| film | idx_title |
| film | idx_fk_language_id |
| film | idx_fk_original_language_id |
| FILM_ACTOR | Primær |
| FILM_ACTOR | Primær |
| FILM_ACTOR | idx_fk_film_id |
| Film_category | Primær |
| Film_category | Primær |
| Film_category | fk_film_category_category |
| FILM_TEXT | Primær |
| FILM_TEXT | IDX_TITLE_DESCRIPTE |
| FILM_TEXT | IDX_TITLE_DESCRIPTE |
| Inventory | Primær |
| Inventory | idx_fk_film_id |
| Inventory | idx_store_id_film_id |
| Inventory | idx_store_id_film_id |
| ----------------------------- Output avkortet--------------------------

Du kan også få informasjon fra alle skjemaene på serveren ved å bruke spørringen som er vist nedenfor:

Velg tabell_navn, indeks_navn fra informasjon_schema.statistikk;

MERKOvennevnte spørring dumper mye informasjon. Sjelden trenger du å få indekser fra alle skjemaene. Imidlertid er en prøveutgang under:

+--------------------+------------+
| Tabell_navn | Indeks_navn |
+--------------------+------------+
| innodb_table_stats | Primær |
| innodb_table_stats | Primær |
| innodb_index_stats | Primær |
| innodb_index_stats | Primær |
| innodb_index_stats | Primær |
+--------------------+------------+

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å å bruke Information_schema for å få informasjon om indeksene fra ett eller alle skjemaer i en MySQL -server.