Az összes index megjelenítése a MySQL -ben vagy a sémában

How Show All Indexes Mysql



A MySQL adatbázis -index egy olyan adatstruktúra -típusra utal, amelyet adatszervezésként használnak az adatbázisban, és elősegíti a MySQL -ben végrehajtott különböző műveletek sebességét.

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:

  1. Asztal: Ez a kimenet első oszlopa. A táblázat nevét mutatja, ahol az index található.
  2. 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.
  3. 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.
  4. Sorozat_index: A negyedik oszlop az oszlop sorszámát jeleníti meg az indexben, 1 -től kezdődően.
  5. Oszlop_neve: Az ötödik oszlop egyszerűen az oszlop neve.
  6. 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.
  7. 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.
  8. 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.
  9. Csomagolt: A kilencedik oszlop azt mutatja, hogyan vannak csomagolva az indexkulcsok, a NULL jelzi, hogy a kulcsok nincsenek csomagolva.
  10. 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.
  11. Index_type: A tizenegyedik oszlop az index módszert mutatja, például BTREE, HASH, RTREE és FULLTEXT.
  12. Megjegyzés: A tizenkettedik oszlop az oszlopban le nem írt indexre vonatkozó információkat mutatja.
  13. Index_komment: A tizenharmadik oszlop további információkat tartalmaz a létrehozott COMMENT attribútummal megadott indexről.
  14. Látható: A tizennegyedik oszlop a lekérdezésoptimalizáló számára látható index, Igen és Nem értékekkel.
  15. 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.