Как да покажете всички индекси в MySQL или схема

How Show All Indexes Mysql



Индексът на базата данни MySQL се отнася до тип структура от данни, използвана като организация на данни в база данни и за подпомагане на скоростта на различните операции, извършвани в MySQL.

Индексите са много полезни. Без тях MySQL трябва да сканира цялата таблица, за да намери съответните редове и колони, което може да бъде много неефективно в големи бази данни.







Този урок ще се фокусира върху това как да преглеждате индексната информация, като използвате клаузата SHOW INDEXES в MySQL.



Показване на индекси на таблици

За да покажем индексната информация на таблица, използваме клаузата SHOW INDEXES, последвана от името на таблицата, която искаме да получим индексната информация.



Общият синтаксис е показан като:





ПОКАЖЕТЕ ИНДЕКСИ tbl_name;

Например, помислете за една от таблиците в примерната база данни на Sakila. Можем да получим индексната информация, както е показано в заявката по -долу:

ИЗПОЛЗВАЙТЕ сакила;

ПОКАЖЕТЕ ИНДЕКСИ ОТ филм;

Горната заявка ще показва информация за индекса от филмовата таблица в базата данни Sakila. Изходът е:



Разбиране на индексната информация

Командата SHOW INDEXES показва съответната информация за индексите в посочената таблица.

Ето следните условия и съответната им информация:

  1. Таблица: Това е първата колона от изхода. Той показва името на таблицата, където се намира индексът.
  2. Неуникални: Втората колона показва дали индексът може да съдържа дубликат. Стойността е булева, като 1 показва, че индексът може да съдържа дубликати и 0, ако е друго.
  3. Име на ключ: Третата колона показва името на индекса. По конвенция първичният ключ приема името на индекса на PRIMARY.
  4. Seq_in_index: Четвъртата колона показва последователния номер на колоната в индекса, започвайки от стойността 1.
  5. Име на колона: Петата колона е просто името на колоната.
  6. Сравнение: Шестата колона е раздел, който показва как колоната се сортира в индекса. Има три сортиращи стойности, като А е възходящ ред, В показва низходящ ред и NULL като несортиран.
  7. Кардиналност: Седмата колона показва уникалността на стойността на данните. В индексите той показва прогнозния брой уникални стойности в конкретния индекс.
  8. Под_част: Осмата колона показва префикса на индекса с NULL, което показва, че цялата колона е индексирана.
  9. Опакован: Деветата колона показва как са опаковани индексните ключове, като NULL показва, че ключовете не са опаковани.
  10. Нула: Десетата колона определя дали колоната може да съдържа NULL стойности. Да, ако колоната може да съдържа нулеви стойности и празна, ако не.
  11. Index_type: Единадесетата колона показва метода на индексиране като BTREE, HASH, RTREE и FULLTEXT.
  12. Коментар: Дванадесетата колона показва информацията за индекс, който не е описан в колоната му.
  13. Index_comment: Тринадесетата колона показва допълнителна информация за индекса, посочен с помощта на атрибута COMMENT, когато е създаден.
  14. Видимо: Четиринадесетата колона е индексът, видим за оптимизатора на заявки, със стойности Да и Не.
  15. Израз: Петнадесетата колона се показва, ако индексът използва израз, а не стойност на префикс на колона или колона.

СЪВЕТ: Информацията за индексите от заявката SHOW INDEXES е подобна на тази на SQLStatistics.

Показване на индексите на схемите

Можете също да получите индексна информация за схема. Общият синтаксис за постигане на този резултат е както следва:

SELECT table_name, index_name FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = schema_name;

Помислете за заявката по -долу, която показва информация за схемата Sakila:

SELECT table_name, index_name ОТ information_schema.statistics WHERE table_schema ='sakila';

Това ще покаже информация за индексите в схемата Sakila, както е показано в изхода по -долу:

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

|ТАБЛИЦА_NAME|INDEX_NAME|

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

|актьор|ОСНОВНИ|

|актьор|idx_actor_last_name|

|адрес|ОСНОВНИ|

|адрес|idx_fk_city_id|

|адрес|idx_location|

|категория|ОСНОВНИ|

|град|ОСНОВНИ|

|град|idx_fk_country_id|

|страна|ОСНОВНИ|

|клиент|ОСНОВНИ|

|клиент|idx_fk_store_id|

|клиент|idx_fk_address_id|

|клиент|idx_last_name|

|филм|ОСНОВНИ|

|филм|idx_title|

|филм|idx_fk_language_id|

|филм|idx_fk_original_language_id|

|film_actor|ОСНОВНИ|

|film_actor|ОСНОВНИ|

|film_actor|idx_fk_film_id|

|филмова_категория|ОСНОВНИ|

|филмова_категория|ОСНОВНИ|

|филмова_категория|fk_film_category_category|

|film_text|ОСНОВНИ|

|film_text|idx_title_description|

|film_text|idx_title_description|

|складова наличност|ОСНОВНИ|

|складова наличност|idx_fk_film_id|

|складова наличност|idx_store_id_film_id|

|складова наличност|idx_store_id_film_id|

|----------------------------- ИЗХОДИТЕ ТРАНСКИРАНИ ------------------- -------

Можете също така да получите информация от всички схеми в сървъра, като използвате заявката, показана по -долу:

SELECT име на таблица, име на индекс ОТ информация_схема.статистика;

ЗАБЕЛЕЖКА : Горната заявка изхвърля много информация. Рядко ще трябва да получавате индекси от всички схеми. Примерен изход обаче е по -долу:

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

|ТАБЛИЦА_NAME|INDEX_NAME|

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

|innodb_table_stats|ОСНОВНИ|

|innodb_table_stats|ОСНОВНИ|

|innodb_index_stats|ОСНОВНИ|

|innodb_index_stats|ОСНОВНИ|

|innodb_index_stats|ОСНОВНИ|

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

Заключение

В този урок обсъдихме как да използваме заявката MySQL SHOW INDEXES за получаване на информация за индексите в таблица. Също така разгледахме използването на information_schema, за да получим информация за индексите от една или всички схеми в MySQL сървър.