Как показать все индексы в 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. Key_name: Третий столбец показывает название индекса. По соглашению первичный ключ принимает имя индекса PRIMARY.
  4. Seq_in_index: В четвертом столбце отображается порядковый номер столбца в индексе, начиная со значения 1.
  5. Column_name: Пятый столбец - это просто имя столбца.
  6. Сортировка: Шестой столбец - это раздел, в котором показано, как столбец сортируется в индексе. Имеется три значения сортировки: A - порядок по возрастанию, B - по убыванию, а 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.

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

Вы также можете получить индексную информацию о схеме. Общий синтаксис для достижения этого результата следующий:

ВЫБЕРИТЕ имя_таблицы, имя_индекса ИЗ INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = schema_name;

Рассмотрим запрос ниже, который показывает информацию о схеме Sakila:

ВЫБЕРИТЕ имя_таблицы, имя_индекса FROM information_schema.statistics ГДЕ table_schema ='сакила';

Это отобразит информацию об индексах в схеме Sakila, как показано в выходных данных ниже:

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

|ТАБЛИЦА ИМЯ|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|

|film_category|НАЧАЛЬНЫЙ|

|film_category|НАЧАЛЬНЫЙ|

|film_category|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|

|----------------------------- ВЫХОД ОБРЕЗАННЫЙ ------------------- -------

Вы также можете получить информацию из всех схем на сервере, используя запрос, показанный ниже:

ВЫБЕРИТЕ table_name, index_name FROM information_schema.statistics;

ПРИМЕЧАНИЕ : Приведенный выше запрос выводит много информации. В редких случаях вам понадобится получать индексы по всем схемам. Однако ниже приведен пример вывода:

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

|ТАБЛИЦА ИМЯ|INDEX_NAME|

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

|innodb_table_stats|НАЧАЛЬНЫЙ|

|innodb_table_stats|НАЧАЛЬНЫЙ|

|innodb_index_stats|НАЧАЛЬНЫЙ|

|innodb_index_stats|НАЧАЛЬНЫЙ|

|innodb_index_stats|НАЧАЛЬНЫЙ|

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

Заключение

В этом руководстве мы обсудили, как использовать запрос MySQL SHOW INDEXES для получения информации об индексах в таблице. Мы также рассмотрели использование information_schema для получения информации об индексах из одной или всех схем на сервере MySQL.