Rejstříky jsou velmi užitečné. Bez nich musí MySQL prohledat celou tabulku, aby našel příslušné řádky a sloupce, což může být ve velkých databázích velmi neefektivní.
Tento tutoriál se zaměří na to, jak zobrazit informace o indexu pomocí klauzule SHOW INDEXES v MySQL.
Zobrazit indexy tabulek
K zobrazení informací o indexu v tabulce používáme klauzuli SHOW INDEXES, za níž následuje název tabulky, pro kterou chceme získat informace o indexu.
Obecná syntaxe je zobrazena jako:
ZOBRAZIT INDEXY tbl_name;
Zvažte například jednu z tabulek ve vzorové databázi Sakila. Informace o indexu můžeme získat podle níže uvedeného dotazu:
POUŽIJTE sakilu;ZOBRAZIT INDEXY Z filmu;
Výše uvedený dotaz zobrazí informace o indexu z tabulky filmů v databázi Sakila. Výstupem je:
Pochopení informací o indexu
Příkaz ZOBRAZIT INDEXY zobrazí příslušné informace o indexech v uvedené tabulce.
Zde jsou uvedeny následující podmínky a jejich příslušné informace:
- Stůl: Toto je první sloupec z výstupu. Ukazuje název tabulky, kde je umístěn index.
- Nejedinečné: Druhý sloupec ukazuje, zda index může obsahovat duplikát. Hodnota je logická hodnota, přičemž 1 znamená, že index může obsahovat duplikáty, a 0, pokud je tomu jinak.
- Název_klíče: Třetí sloupec zobrazuje název indexu. Podle konvence primární klíč přebírá indexový název PRIMARY.
- Sekvence_index: Čtvrtý sloupec zobrazuje pořadové číslo sloupce v indexu počínaje hodnotou 1.
- Název_sloupce: Pátý sloupec je jednoduše název sloupce.
- Kompletace: Šestý sloupec je část, která ukazuje, jak se sloupec seřadí v indexu. Existují tři hodnoty řazení, přičemž A je Vzestupně, B označuje Sestupně a NULL jako netříděné.
- Mohutnost: Sedmý sloupec ukazuje jedinečnost hodnoty dat. V indexech ukazuje odhadovaný počet jedinečných hodnot v konkrétním indexu.
- Pod_část: Osmý sloupec zobrazuje předponu indexu s NULL, což znamená, že je indexován celý sloupec.
- Zabaleno: Devátý sloupec ukazuje, jak jsou balíky indexů zabaleny, přičemž NULL označuje, že klíče nejsou zabaleny.
- Nula: Desátý sloupec určuje, zda sloupec může obsahovat hodnoty NULL. Ano, pokud sloupec může obsahovat hodnoty null, a pokud není, bude prázdný.
- Index_typ: Jedenáctý sloupec ukazuje metodu indexu, například BTREE, HASH, RTREE a FULLTEXT.
- Komentář: Dvanáctý sloupec zobrazuje informace o indexu, který není popsán v jeho sloupci.
- Index_comment: Třináctý sloupec zobrazuje další informace o indexu určeném při vytváření pomocí atributu KOMENTÁŘ.
- Viditelné: Čtrnáctý sloupec je index viditelný pro optimalizátor dotazů s hodnotami Ano a Ne.
- Výraz: Patnáctý sloupec se zobrazí, pokud index používá výraz a nikoli hodnotu předpony sloupce nebo sloupce.
NÁZNAK: Informace o indexech z dotazu SHOW INDEXES jsou podobné jako u SQLStatistics.
Zobrazit rejstříky schémat
Můžete také získat informace o rejstříku o schématu. Obecná syntaxe pro dosažení tohoto výsledku je následující:
VYBERTE název_tabulky, název_ indexu Z INFORMATION_SCHEMA.STATISTICS KDE TABLE_SCHEMA = název schématu;Zvažte níže uvedený dotaz, který zobrazuje informace o schématu Sakila:
ZVOLTE název_tabulky, název_ indexu OD INFORMACÍ_schema.statistiky KDE tabulka_schema ='sakila';Zobrazí se informace o indexech ve schématu Sakila, jak je znázorněno na výstupu níže:
+ --------------- + ----------------------------- +|TABLE_NAME|INDEX_NAME|
+ --------------- + ----------------------------- +
|herec|HLAVNÍ|
|herec|idx_actor_last_name|
|adresa|HLAVNÍ|
|adresa|idx_fk_city_id|
|adresa|idx_location|
|kategorie|HLAVNÍ|
|město|HLAVNÍ|
|město|idx_fk_country_id|
|země|HLAVNÍ|
|zákazník|HLAVNÍ|
|zákazník|idx_fk_store_id|
|zákazník|idx_fk_address_id|
|zákazník|idx_last_name|
|film|HLAVNÍ|
|film|idx_title|
|film|idx_fk_language_id|
|film|idx_fk_original_language_id|
|filmový herec|HLAVNÍ|
|filmový herec|HLAVNÍ|
|filmový herec|idx_fk_film_id|
|kategorie_filmu|HLAVNÍ|
|kategorie_filmu|HLAVNÍ|
|kategorie_filmu|fk_film_category_category|
|film_text|HLAVNÍ|
|film_text|idx_title_description|
|film_text|idx_title_description|
|inventář|HLAVNÍ|
|inventář|idx_fk_film_id|
|inventář|idx_store_id_film_id|
|inventář|idx_store_id_film_id|
|----------------------------- VÝSTUP ZKRACEN ------------------- -------
Můžete také získat informace ze všech schémat na serveru pomocí níže uvedeného dotazu:
VYBERTE název_tabulky, název_indexu FROM information_schema.statistics;POZNÁMKA : Výše uvedený dotaz ukládá spoustu informací. Zřídka budete potřebovat získat indexy ze všech schémat. Ukázkový výstup je však níže:
+ -------------------- + ------------ +|TABLE_NAME|INDEX_NAME|
+ -------------------- + ------------ +
|innodb_table_stats|HLAVNÍ|
|innodb_table_stats|HLAVNÍ|
|innodb_index_stats|HLAVNÍ|
|innodb_index_stats|HLAVNÍ|
|innodb_index_stats|HLAVNÍ|
+ -------------------- + ------------ +
Závěr
V tomto kurzu jsme diskutovali o tom, jak pomocí dotazu MySQL SHOW INDEXES získat informace o indexech v tabulce. Také jsme se podívali na použití information_schema k získání informací o indexech z jednoho nebo všech schémat na serveru MySQL.