Jak wyświetlić wszystkie indeksy w MySQL lub schemacie?

How Show All Indexes Mysql



Indeks bazy danych MySQL odnosi się do typu struktury danych używanej do organizacji danych w bazie danych i do przyspieszenia różnych operacji wykonywanych w MySQL.

Indeksy są bardzo pomocne. Bez nich MySQL musi przeskanować całą tabelę, aby znaleźć odpowiednie wiersze i kolumny, co może być bardzo nieefektywne w dużych bazach danych.







Ten samouczek skupi się na tym, jak wyświetlić informacje o indeksie za pomocą klauzuli SHOW INDEXES w MySQL.



Pokaż indeksy tabeli

Aby wyświetlić informacje o indeksie w tabeli, używamy klauzuli SHOW INDEXES, po której następuje nazwa tabeli, do której chcemy uzyskać informacje o indeksie.



Ogólna składnia jest pokazana jako:





POKAŻ INDEKSY nazwa_tabeli;

Rozważmy na przykład jedną z tabel w przykładowej bazie danych Sakila. Możemy uzyskać informacje o indeksie, jak pokazano w poniższym zapytaniu:

UŻYWAJ sakili;

POKAŻ WSKAŹNIKI Z filmu;

Powyższe zapytanie wyświetli informacje o indeksie z tabeli filmów w bazie danych Sakila. Dane wyjściowe to:



Zrozumienie informacji o indeksie

Komenda SHOW INDEXES wyświetla odpowiednie informacje o indeksach w określonej tabeli.

Oto następujące warunki i podane informacje:

  1. Tabela: To jest pierwsza kolumna z danych wyjściowych. Pokazuje nazwę tabeli, w której znajduje się indeks.
  2. Nieunikatowe: Druga kolumna pokazuje, czy indeks może zawierać duplikat. Wartość jest logiczna, gdzie 1 wskazuje, że indeks może zawierać duplikaty, a 0, jeśli jest inaczej.
  3. Nazwa_klucza: Trzecia kolumna pokazuje nazwę indeksu. Zgodnie z konwencją klucz podstawowy przyjmuje nazwę indeksu PRIMARY.
  4. Seq_in_index: Czwarta kolumna wyświetla numer kolejny kolumny w indeksie, zaczynając od wartości 1.
  5. Nazwa kolumny: Piąta kolumna to po prostu nazwa kolumny.
  6. Porównanie: Szósta kolumna to sekcja, która pokazuje, jak kolumna jest sortowana w indeksie. Istnieją trzy wartości sortowania, przy czym A to porządek rosnący, B oznacza porządek malejący, a NULL jako nieposortowany.
  7. Kardynalność: Siódma kolumna pokazuje unikalność wartości danych. W indeksach pokazuje szacowaną liczbę unikalnych wartości w określonym indeksie.
  8. Część podrzędna: W ósmej kolumnie wyświetlany jest prefiks indeksu z wartością NULL, co oznacza, że ​​indeksowana jest cała kolumna.
  9. Zapakowane: Dziewiąta kolumna pokazuje, jak klucze indeksu są upakowane, przy czym NULL oznacza, że ​​klucze nie są upakowane.
  10. Zero: Dziesiąta kolumna określa, czy kolumna może zawierać wartości NULL. Tak, jeśli kolumna może zawierać wartości null i pusta, jeśli nie.
  11. Typ_indeksu: Jedenasta kolumna przedstawia metodę indeksowania, taką jak BTREE, HASH, RTREE i FULLTEXT.
  12. Komentarz: Dwunasta kolumna zawiera informacje o indeksie nie opisanym w jej kolumnie.
  13. Index_comment: Trzynasta kolumna zawiera dodatkowe informacje o indeksie określonym przy użyciu atrybutu COMMENT podczas tworzenia.
  14. Widoczny: Czternasta kolumna to indeks widoczny dla optymalizatora zapytań z wartościami Tak i Nie.
  15. Wyrażenie: Piętnasta kolumna jest wyświetlana, jeśli indeks używa wyrażenia, a nie kolumny lub wartości prefiksu kolumny.

WSKAZÓWKA: Informacje o indeksach z zapytania SHOW INDEXES są podobne do tych z SQLStatistics.

Pokaż indeksy schematów

Możesz również uzyskać informacje o indeksie dotyczące schematu. Ogólna składnia osiągnięcia tego wyniku jest następująca:

SELECT nazwa_tabeli, nazwa_indeksu FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = nazwa_schematu;

Rozważ poniższe zapytanie, które pokazuje informacje o schemacie Sakila:

SELECT nazwa_tabeli, nazwa_indeksu FROM schemat_informacji.statistics WHERE schemat_tabeli =„sakila”;

Spowoduje to wyświetlenie informacji o indeksach w schemacie Sakila, jak pokazano na poniższym wyjściu:

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

|NAZWA TABELI|INDEX_NAME|

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

|aktor|PODSTAWOWY|

|aktor|idx_actor_last_name|

|adres|PODSTAWOWY|

|adres|idx_fk_city_id|

|adres|idx_location|

|Kategoria|PODSTAWOWY|

|Miasto|PODSTAWOWY|

|Miasto|idx_fk_country_id|

|kraj|PODSTAWOWY|

|klient|PODSTAWOWY|

|klient|idx_fk_store_id|

|klient|idx_fk_address_id|

|klient|idx_last_name|

|film|PODSTAWOWY|

|film|idx_title|

|film|idx_fk_language_id|

|film|idx_fk_original_language_id|

|aktor filmowy|PODSTAWOWY|

|aktor filmowy|PODSTAWOWY|

|aktor filmowy|idx_fk_film_id|

|film_category|PODSTAWOWY|

|film_category|PODSTAWOWY|

|film_category|fk_film_category_category|

|film_tekst|PODSTAWOWY|

|film_tekst|idx_title_description|

|film_tekst|idx_title_description|

|Inwentarz|PODSTAWOWY|

|Inwentarz|idx_fk_film_id|

|Inwentarz|idx_store_id_film_id|

|Inwentarz|idx_store_id_film_id|

|-----------------------------WYJŚCIE OBCIĄGNIĘTE------------------- -------

Możesz również uzyskać informacje ze wszystkich schematów na serwerze, korzystając z poniższego zapytania:

SELECT nazwa_tabeli, nazwa_indeksu FROM information_schema.statistics;

NOTATKA : Powyższe zapytanie zrzuca dużo informacji. Rzadko będziesz potrzebować indeksów ze wszystkich schematów. Przykładowe dane wyjściowe znajdują się jednak poniżej:

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

|NAZWA TABELI|INDEX_NAME|

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

|innodb_table_stats|PODSTAWOWY|

|innodb_table_stats|PODSTAWOWY|

|innodb_index_stats|PODSTAWOWY|

|innodb_index_stats|PODSTAWOWY|

|innodb_index_stats|PODSTAWOWY|

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

Wniosek

W tym samouczku omówiliśmy, jak używać zapytania MySQL SHOW INDEXES w celu uzyskania informacji o indeksach w tabeli. Przyjrzeliśmy się również wykorzystaniu schematu information_schema do uzyskania informacji o indeksach z jednego lub wszystkich schematów na serwerze MySQL.