Os índices são muito úteis. Sem eles, o MySQL precisa digitalizar toda a tabela para encontrar as linhas e colunas relevantes, que podem ser muito ineficientes em grandes bancos de dados.
Este tutorial se concentrará em como visualizar as informações do índice usando a cláusula Mostrar índices em MySQL.
Mostrar índices de tabela
Para mostrar informações de índice em uma tabela, usamos a cláusula de índices de show seguida pelo nome da tabela, desejamos obter as informações do índice.
A sintaxe geral é mostrada como:
Mostrar índices tbl_name;
Por exemplo, considere uma das tabelas no banco de dados de amostra de Sakila. Podemos obter as informações do índice, conforme mostrado na consulta abaixo:
Use Sakila;
Mostrar índices do filme;
A consulta acima exibirá informações de índice da tabela de filmes no banco de dados Sakila. A saída é:
Entendendo informações do índice
O comando show índices exibe as informações relevantes sobre os índices na tabela especificada.
Aqui estão os seguintes termos e suas respectivas informações fornecidas:
DICA: As informações sobre os índices da consulta Show Indexes são semelhantes às da SQLStatistics.
Mostrar índices de esquema
Você também pode obter informações de índice sobre um esquema. A sintaxe geral para alcançar esse resultado é como abaixo:
Selecione Table_name, index_name de Information_schema.Estatísticas onde tabela_schema = "schema_name";
Considere a consulta abaixo que mostra informações sobre o esquema Sakila:
Selecione Table_name, index_name de Information_schema.estatísticas onde tabela_schema = "sakila";
Isso exibirá informações sobre os índices no esquema Sakila, como mostrado na saída abaixo:
+---------------+-----------------------------+
| Tabela_name | Index_name |
+---------------+-----------------------------+
| ator | Primário |
| ator | idx_actor_last_name |
| endereço | Primário |
| endereço | idx_fk_city_id |
| endereço | idx_location |
| categoria | Primário |
| cidade | Primário |
| cidade | idx_fk_country_id |
| país | Primário |
| cliente | Primário |
| cliente | idx_fk_store_id |
| cliente | idx_fk_address_id |
| cliente | idx_last_name |
| filme | Primário |
| filme | idx_title |
| filme | idx_fk_language_id |
| filme | idx_fk_original_language_id |
| Film_actor | Primário |
| Film_actor | Primário |
| Film_actor | idx_fk_film_id |
| Film_category | Primário |
| Film_category | Primário |
| Film_category | fk_film_category_category |
| film_text | Primário |
| film_text | idx_title_description |
| film_text | idx_title_description |
| inventário | Primário |
| inventário | idx_fk_film_id |
| inventário | idx_store_id_film_id |
| inventário | idx_store_id_film_id |
| ----------------------------- Saída truncada--------------------------
Você também pode obter informações de todos os esquemas do servidor usando a consulta mostrada abaixo:
Selecione Table_name, index_name de Information_schema.Estatisticas;
OBSERVAÇÃO: A consulta acima despeja muitas informações. Raramente você precisará obter índices de todos os esquemas. No entanto, uma saída de amostra está abaixo:
+--------------------+------------+
| Tabela_name | Index_name |
+--------------------+------------+
| innodb_table_stats | Primário |
| innodb_table_stats | Primário |
| innodb_index_stats | Primário |
| innodb_index_stats | Primário |
| innodb_index_stats | Primário |
+--------------------+------------+
Conclusão
Neste tutorial, discutimos como usar a consulta MySQL Show Indexes para obter informações sobre os índices em uma tabela. Também analisamos o uso do Information_schema para obter informações sobre os índices de um ou de todos os esquemas em um servidor MySQL.