Indeksit ovat erittäin hyödyllisiä. Ilman niitä MySQL: n on skannattava koko taulukko löytääkseen tarvittavat rivit ja sarakkeet, mikä voi olla erittäin tehotonta suurissa tietokannoissa.
Tämä opetusohjelma keskittyy hakemistotietojen tarkastelemiseen käyttämällä SHOW INDEXES -lauseketta MySQL: ssä.
Näytä taulukon indeksit
Indeksitietojen näyttämiseksi taulukossa käytämme SHOW INDEXES -lauseketta ja sen taulukon nimeä, josta haluamme hakemistotiedot.
Yleinen syntaksi näytetään seuraavasti:
NÄYTÄ INDEKSIT tbl_name;
Tarkastellaan esimerkiksi yhtä Sakila -näytetietokannan taulukoista. Voimme saada hakemistotiedot alla olevan kyselyn mukaisesti:
KÄYTÄ sakila;NÄYTÄ INDEKSSIT ELOKUVASTA;
Yllä oleva kysely näyttää hakemistotiedot Sakila -tietokannan kalvotaulukosta. Lähtö on:
Indeksitietojen ymmärtäminen
SHOW INDEXES -komento näyttää tarvittavat tiedot määritetyn taulukon indekseistä.
Tässä ovat seuraavat ehdot ja vastaavat tiedot:
- Pöytä: Tämä on ensimmäinen sarake tuotoksesta. Se näyttää taulukon nimen, jossa indeksi sijaitsee.
- Ei-ainutlaatuinen: Toisessa sarakkeessa näkyy, voiko indeksi sisältää kaksoiskappaleen. Arvo on Boolen arvo, 1 osoittaa, että indeksi voi sisältää kaksoiskappaleita ja 0, jos ei.
- Avaimen_nimi: Kolmas sarake näyttää indeksin nimen. Sopimuksen mukaan ensisijainen avain ottaa hakemiston nimen PRIMARY.
- Seq_in_index: Neljäs sarake näyttää sarakkeen sarjanumeron indeksissä alkaen arvosta 1.
- Sarakkeen_nimi: Viides sarake on yksinkertaisesti sarakkeen nimi.
- Lajittelu: Kuudes sarake on osa, joka näyttää, miten sarake lajitellaan hakemistossa. Lajitteluarvoja on kolme: A on nouseva järjestys, B osoittaa laskevaa järjestystä ja NULL on lajittelematon.
- Kardinaliteetti: Seitsemäs sarake näyttää data -arvon ainutlaatuisuuden. Indeksissä se näyttää arvioidun yksittäisten arvojen määrän tietyssä indeksissä.
- Osa_osa: Kahdeksas sarake näyttää indeksin etuliitteen, jossa on NULL, mikä osoittaa, että koko sarake on indeksoitu.
- Pakattu: Yhdeksäs sarake näyttää, kuinka hakemistonäppäimet on pakattu, ja NULL osoittaa, että avaimia ei ole pakattu.
- Tyhjä: Kymmenes sarake määrittää, voiko sarake sisältää NULL -arvoja. Kyllä, jos sarake voi sisältää nolla -arvoja, ja tyhjä, jos ei.
- Indeksityyppi: Yhdestoista sarake näyttää indeksimenetelmän, kuten BTREE, HASH, RTREE ja FULLTEXT.
- Kommentti: Kahdestoista sarake näyttää indeksin tiedot, joita ei ole kuvattu sen sarakkeessa.
- Hakemisto_kommentti: Kolmastoista sarake näyttää lisätietoja indeksistä, joka on määritetty käyttämällä COMMENT -määritettä luodessaan.
- Näkyvä: Neljästoista sarake on kyselynoptimointityökalulle näkyvä hakemisto, jonka arvot ovat Kyllä ja Ei.
- Ilmaisu: Viidestoista sarake näkyy, jos indeksi käyttää lauseketta eikä sarakkeen tai sarakkeen etuliitteen arvoa.
VIHJE: SHOW INDEXES -kyselyn indeksitiedot ovat samanlaisia kuin SQLStatistics.
Näytä mallihakemistot
Voit myös saada mallin hakemistotietoja. Yleinen syntaksi tämän tuloksen saavuttamiseksi on seuraava:
VALITSE taulukon_nimi, hakemiston_nimi TIETOJEN_KÄYTÄNTÖSTÄ. STATISTICS WHERE TABLE_SCHEMA = skeeman_nimi;Harkitse alla olevaa kyselyä, joka näyttää tietoja Sakila -mallista:
SELECT taulukon_nimi, indeksin_nimi FROM information_schema.statistics WHERE table_schema ='sakila';Tämä näyttää tietoja Sakila -mallin indekseistä alla olevan tuloksen mukaisesti:
+ --------------- + ----------------------------- +|TABLE_NAME|INDEX_NAME|
+ --------------- + ----------------------------- +
|näyttelijä|ENSISIJAINEN|
|näyttelijä|idx_toimija_sukunimi|
|osoite|ENSISIJAINEN|
|osoite|idx_fk_city_id|
|osoite|idx_location|
|kategoria|ENSISIJAINEN|
|kaupunki|ENSISIJAINEN|
|kaupunki|idx_fk_country_id|
|maa|ENSISIJAINEN|
|asiakas|ENSISIJAINEN|
|asiakas|idx_fk_store_id|
|asiakas|idx_fk_address_id|
|asiakas|idx_last_name|
|elokuva|ENSISIJAINEN|
|elokuva|idx_title|
|elokuva|idx_fk_language_id|
|elokuva|idx_fk_original_language_id|
|elokuva_näyttelijä|ENSISIJAINEN|
|elokuva_näyttelijä|ENSISIJAINEN|
|elokuva_näyttelijä|idx_fk_film_id|
|elokuva_luokka|ENSISIJAINEN|
|elokuva_luokka|ENSISIJAINEN|
|elokuva_luokka|fk_film_category_category|
|elokuva_teksti|ENSISIJAINEN|
|elokuva_teksti|idx_title_description|
|elokuva_teksti|idx_title_description|
|inventaario|ENSISIJAINEN|
|inventaario|idx_fk_film_id|
|inventaario|idx_store_id_film_id|
|inventaario|idx_store_id_film_id|
|----------------------------- LÄHTÖ RAJOITETTU ------------------- -------
Voit myös saada tietoja kaikista palvelimen kaavoista käyttämällä alla esitettyä kyselyä:
SELECT taulukon_nimi, indeksin_nimi FROM information_schema.statistics;HUOMAUTUS : Yllä oleva kysely tyhjentää paljon tietoa. Harvoin sinun on saatava indeksit kaikista kaavoista. Esimerkkituotos on kuitenkin alla:
+ -------------------- + ------------ +|TABLE_NAME|INDEX_NAME|
+ -------------------- + ------------ +
|innodb_table_stats|ENSISIJAINEN|
|innodb_table_stats|ENSISIJAINEN|
|innodb_index_stats|ENSISIJAINEN|
|innodb_index_stats|ENSISIJAINEN|
|innodb_index_stats|ENSISIJAINEN|
+ -------------------- + ------------ +
Johtopäätös
Tässä opetusohjelmassa keskustelimme siitä, miten MySQL SHOW INDEXES -kyselyn avulla saat tietoja taulukon indekseistä. Tarkastelimme myös informaation_skeeman käyttämistä hakemistotietojen saamiseksi yhdestä tai kaikista MySQL -palvelimen kaavoista.