Ako zobraziť všetky indexy v MySQL alebo schéme

How Show All Indexes Mysql



Databázový index MySQL označuje typ dátovej štruktúry, ktorý sa používa ako organizácia údajov v databáze a ktorý má pomôcť zvýšiť rýchlosť rôznych operácií vykonávaných v MySQL.

Indexy sú veľmi nápomocné. Bez nich musí MySQL skenovať celú tabuľku, aby našiel príslušné riadky a stĺpce, čo môže byť vo veľkých databázach veľmi neefektívne.







Tento tutoriál sa zameria na to, ako zobraziť informácie o indexe pomocou klauzuly SHOW INDEXES v MySQL.



Zobraziť indexy tabuliek

Na zobrazenie informácií o indexe v tabuľke používame klauzulu SHOW INDEXES, za ktorou nasleduje názov tabuľky, z ktorej chceme získať informácie o indexe.



Všeobecná syntax je zobrazená ako:





ZOBRAZIŤ INDEXY tbl_name;

Zoberme si napríklad jednu z tabuliek vo vzorovej databáze Sakila. Informácie o indexe môžeme získať podľa nižšie uvedeného dopytu:

POUŽIJTE sakilu;

ZOBRAZIŤ INDEXY Z filmu;

Vyššie uvedený dotaz zobrazí informácie o indexe z tabuľky filmov v databáze Sakila. Výstupom je:



Pochopenie informácií o indexe

Príkaz ZOBRAZIŤ INDEXY zobrazí relevantné informácie o indexoch v uvedenej tabuľke.

Tu sú uvedené nasledujúce podmienky a ich príslušné informácie:

  1. Tabuľka: Toto je prvý stĺpec z výstupu. Zobrazuje názov tabuľky, v ktorej sa nachádza index.
  2. Jedinečné: Druhý stĺpec ukazuje, či index môže obsahovať duplikát. Hodnota je logická, pričom 1 znamená, že index môže obsahovať duplikáty, a 0, ak je to inak.
  3. Key_name: Tretí stĺpec zobrazuje názov indexu. Podľa konvencie primárny kľúč preberá indexový názov PRIMARY.
  4. Sekv_in_index: Štvrtý stĺpec zobrazuje poradové číslo stĺpca v indexe od hodnoty 1.
  5. Názov stĺpca: Piaty stĺpec je jednoducho názov stĺpca.
  6. Zoradenie: Šiesty stĺpec je časť, ktorá ukazuje, ako sa stĺpec zoradí v indexe. Existujú tri hodnoty zoradenia, pričom A je Vzostupné poradie, B označuje Zostupné poradie a NULL ako netriedené.
  7. Mohutnosť: Siedmy stĺpec ukazuje jedinečnosť hodnoty údajov. V indexoch ukazuje odhadovaný počet jedinečných hodnôt v konkrétnom indexe.
  8. Podčasť: Ôsmy stĺpec zobrazuje predponu indexu s NULL, čo znamená, že je indexovaný celý stĺpec.
  9. Zabalené: Deviaty stĺpec ukazuje, ako sú balíky indexov zabalené, pričom hodnota NULL naznačuje, že kľúče nie sú zabalené.
  10. Nulový: Desiaty stĺpec určuje, či stĺpec môže obsahovať NULL hodnoty. Áno, ak stĺpec môže obsahovať nulové hodnoty, a ak nie, prázdny.
  11. Index_typ: Jedenásty stĺpec zobrazuje metódu indexu, ako napríklad BTREE, HASH, RTREE a FULLTEXT.
  12. Komentár: V dvanástom stĺpci sú uvedené informácie o indexe, ktorý nie je v jeho stĺpci popísaný.
  13. Index_comment: V trinástom stĺpci sú uvedené ďalšie informácie o indexe určenom pri vytvorení pomocou atribútu KOMENTÁR.
  14. Viditeľné: Štrnásty stĺpec je index viditeľný pre optimalizátor dotazov s hodnotami Áno a Nie.
  15. Výraz: Pätnásty stĺpec sa zobrazí, ak index používa výraz a nie hodnotu predpony stĺpca alebo stĺpca.

TIP: Informácie o indexoch z dotazu SHOW INDEXES sú podobné ako v SQLStatistics.

Zobraziť indexy schémy

Môžete tiež získať informácie o indexe schémy. Všeobecná syntax na dosiahnutie tohto výsledku je nasledovná:

VYBERTE názov_tabulky, názov_ indexu Z INFORMÁCIÍ_SCHEMA.ŠTATISTIKY KDE TABLE_SCHEMA = názov schémy;

Zvážte nižšie uvedený dotaz, ktorý zobrazuje informácie o schéme Sakila:

VYBERTE názov_tabulky, názov_indexu ZO informácií_schema.statistika KDE tabuľka_schémy ='sakila';

Zobrazí sa informácia o indexoch v schéme Sakila, ako je uvedené v nižšie uvedenom výstupe:

+ --------------- + ----------------------------- +

|TABLE_NAME|INDEX_NAME|

+ --------------- + ----------------------------- +

|herec|PRIMÁRNY|

|herec|idx_actor_last_name|

|adresa|PRIMÁRNY|

|adresa|idx_fk_city_id|

|adresa|idx_location|

|kategórie|PRIMÁRNY|

|mesto|PRIMÁRNY|

|mesto|idx_fk_country_id|

|krajina|PRIMÁRNY|

|zákazníka|PRIMÁRNY|

|zákazníka|idx_fk_store_id|

|zákazníka|idx_fk_address_id|

|zákazníka|idx_last_name|

|film|PRIMÁRNY|

|film|idx_title|

|film|idx_fk_language_id|

|film|idx_fk_original_language_id|

|filmový herec|PRIMÁRNY|

|filmový herec|PRIMÁRNY|

|filmový herec|idx_fk_film_id|

|kategória_filmu|PRIMÁRNY|

|kategória_filmu|PRIMÁRNY|

|kategória_filmu|fk_film_category_category|

|film_text|PRIMÁRNY|

|film_text|idx_title_description|

|film_text|idx_title_description|

|inventár|PRIMÁRNY|

|inventár|idx_fk_film_id|

|inventár|idx_store_id_film_id|

|inventár|idx_store_id_film_id|

|----------------------------- VÝSTUP SKRATENÝ ------------------- -------

Informácie môžete tiež získať zo všetkých schém na serveri pomocou nižšie uvedeného dotazu:

VYBERTE názov_tabulky, názov_ indexu ZO_informácie_schema.statistiky;

POZNÁMKA : Vyššie uvedený dotaz ukladá veľa informácií. Zriedka budete potrebovať získať indexy zo všetkých schém. Ukážkový výstup je však nasledujúci:

+ -------------------- + ------------ +

|TABLE_NAME|INDEX_NAME|

+ -------------------- + ------------ +

|innodb_table_stats|PRIMÁRNY|

|innodb_table_stats|PRIMÁRNY|

|innodb_index_stats|PRIMÁRNY|

|innodb_index_stats|PRIMÁRNY|

|innodb_index_stats|PRIMÁRNY|

+ -------------------- + ------------ +

Záver

V tomto návode sme diskutovali o tom, ako použiť dotaz MySQL SHOW INDEXES na získanie informácií o indexoch v tabuľke. Tiež sme sa pozreli na použitie informačnej schémy na získanie informácií o indexoch z jednej alebo všetkých schém na serveri MySQL.