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:
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.