Az indexek nagyon hasznosak. Nélkülük a MySQL -nek be kell szkennelnie a teljes táblázatot, hogy megtalálja a megfelelő sorokat és oszlopokat, ami nagyon hatástalan lehet a nagy adatbázisokban.
Ez az oktatóanyag arra összpontosít, hogyan tekintheti meg az indexadatokat a SHOW INDEXES záradék használatával a MySQL -ben.
Táblázatindexek megjelenítése
Az indexinformációk táblán való megjelenítéséhez a SHOW INDEXES záradékot használjuk, majd a táblázat nevét, amelyhez az indexinformációt szeretnénk beszerezni.
Az általános szintaxis a következőképpen jelenik meg:
INDEXEK MUTATÁSA tbl_name;
Tekintsük például a Sakila mintaadatbázis egyik táblázatát. Az alábbi lekérdezésben látható indexadatokat kaphatjuk meg:
HASZNÁLJA sakila;MUTASD MEG INDEXEKET FILMBŐL;
A fenti lekérdezés a Sakila adatbázis fóliatáblájának indexinformációit jeleníti meg. A kimenet:
Az indexinformációk megértése
Az INDEXES MUTATÁS parancs megjeleníti a megadott táblázatban szereplő indexekkel kapcsolatos információkat.
Íme a következő feltételek és a hozzájuk tartozó információk:
- Asztal: Ez a kimenet első oszlopa. A táblázat nevét mutatja, ahol az index található.
- Nem egyedi: A második oszlop azt mutatja, hogy az index tartalmazhat -e ismétlődést. Az érték logikai érték, az 1 azt jelzi, hogy az index tartalmazhat ismétlődéseket, és 0, ha nem.
- Kulcsnév: A harmadik oszlop az index nevét mutatja. Megállapodás szerint az elsődleges kulcs a PRIMARY index nevét veszi fel.
- Sorozat_index: A negyedik oszlop az oszlop sorszámát jeleníti meg az indexben, 1 -től kezdődően.
- Oszlop_neve: Az ötödik oszlop egyszerűen az oszlop neve.
- Leválogatás: A hatodik oszlop egy olyan szakasz, amely megmutatja, hogy az oszlop milyen sorrendbe kerül az indexben. Három rendezési érték létezik: A a növekvő sorrend, B a csökkenő sorrendet jelöli, a NULL pedig nem rendezett.
- Kardinalitás: A hetedik oszlop az adatérték egyediségét mutatja. Az indexekben az egyedi index becsült számát mutatja az adott indexben.
- Alrész: A nyolcadik oszlopban az index előtagja látható a NULL jelzéssel, ami azt jelzi, hogy az egész oszlop indexelve van.
- Csomagolt: A kilencedik oszlop azt mutatja, hogyan vannak csomagolva az indexkulcsok, a NULL jelzi, hogy a kulcsok nincsenek csomagolva.
- Nulla: A tizedik oszlop határozza meg, hogy az oszlop tartalmazhat -e NULL értékeket. Igen, ha az oszlop tartalmazhat null értékeket, és üres, ha nem.
- Index_type: A tizenegyedik oszlop az index módszert mutatja, például BTREE, HASH, RTREE és FULLTEXT.
- Megjegyzés: A tizenkettedik oszlop az oszlopban le nem írt indexre vonatkozó információkat mutatja.
- Index_komment: A tizenharmadik oszlop további információkat tartalmaz a létrehozott COMMENT attribútummal megadott indexről.
- Látható: A tizennegyedik oszlop a lekérdezésoptimalizáló számára látható index, Igen és Nem értékekkel.
- Kifejezés: A tizenötödik oszlop azt jeleníti meg, ha az index kifejezést használ, és nem oszlop vagy oszlop előtag értékét.
CÉLZÁS: A SHOW INDEXES lekérdezés indexeivel kapcsolatos információk hasonlóak az SQLStatistics adataihoz.
Sémaindexek megjelenítése
Séma indexadatait is lekérheti. Az eredmény elérésének általános szintaxisa a következő:
SELECT tábla_név, indexnév FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = séma_neve;Tekintsük az alábbi lekérdezést, amely a Sakila sémával kapcsolatos információkat jeleníti meg:
SELECT táblanév, indexnév FROM information_schema.statistics WHERE table_schema ='sakila';Ez információt jelenít meg a Sakila -séma indexeiről, amint az az alábbi kimeneten látható:
+ --------------- + ----------------------------- +|TABLE_NAME|INDEX_NAME|
+ --------------- + ----------------------------- +
|színész|ELSŐDLEGES|
|színész|idx_szereplő_utolsó_neve|
|cím|ELSŐDLEGES|
|cím|idx_fk_city_id|
|cím|idx_hely|
|kategória|ELSŐDLEGES|
|város|ELSŐDLEGES|
|város|idx_fk_country_id|
|ország|ELSŐDLEGES|
|vevő|ELSŐDLEGES|
|vevő|idx_fk_store_id|
|vevő|idx_fk_cím_azonosító|
|vevő|idx_last_name|
|film|ELSŐDLEGES|
|film|idx_cím|
|film|idx_fk_language_id|
|film|idx_fk_original_language_id|
|film_színész|ELSŐDLEGES|
|film_színész|ELSŐDLEGES|
|film_színész|idx_fk_film_id|
|film_kategória|ELSŐDLEGES|
|film_kategória|ELSŐDLEGES|
|film_kategória|fk_film_kategória_kategória|
|film_szöveg|ELSŐDLEGES|
|film_szöveg|idx_cím_leírás|
|film_szöveg|idx_cím_leírás|
|leltár|ELSŐDLEGES|
|leltár|idx_fk_film_id|
|leltár|idx_store_id_film_id|
|leltár|idx_store_id_film_id|
|----------------------------- Kimenet csonka ------------------- -------
A szerver összes sémájából információkat is szerezhet az alábbi lekérdezés használatával:
SELECT táblanév, indexnév FROM information_schema.statistics;JEGYZET : A fenti lekérdezés sok információt dob ki. Ritkán kell indexeket kapnia az összes sémából. A minta kimenete azonban az alábbiakban található:
+ -------------------- + ------------ +|TABLE_NAME|INDEX_NAME|
+ -------------------- + ------------ +
|innodb_table_stats|ELSŐDLEGES|
|innodb_table_stats|ELSŐDLEGES|
|innodb_index_stats|ELSŐDLEGES|
|innodb_index_stats|ELSŐDLEGES|
|innodb_index_stats|ELSŐDLEGES|
+ -------------------- + ------------ +
Következtetés
Ebben az oktatóanyagban megbeszéltük, hogyan használhatjuk a MySQL SHOW INDEXES lekérdezést, hogy információkat szerezzünk a táblázat indexeiről. Azt is megvizsgáltuk, hogy az information_schema segítségével információt szerezhetünk -e az indexekről egy vagy az összes sémából egy MySQL -kiszolgálón.