Como mostrar todos os índices em MySQL ou esquema

How Show All Indexes Mysql



O índice de banco de dados MySQL se refere a um tipo de estrutura de dados usada como organização de dados em um banco de dados e para ajudar a aumentar a velocidade de várias operações realizadas no MySQL.

Os índices são muito úteis. Sem eles, o MySQL precisa varrer toda a tabela para encontrar as linhas e colunas relevantes, o que pode ser muito ineficiente em grandes bancos de dados.







Este tutorial se concentrará em como visualizar informações de índice usando a cláusula SHOW INDEXES no MySQL.



Mostrar índices da tabela

Para mostrar as informações do índice em uma tabela, usamos a cláusula SHOW INDEXES seguida do nome da tabela da qual desejamos obter as informações do índice.



A sintaxe geral é mostrada como:





SHOW INDEXES nome_tabela;

Por exemplo, considere uma das tabelas no banco de dados de amostra Sakila. Podemos obter as informações do índice conforme mostrado na consulta abaixo:

USE sakila;

MOSTRAR ÍNDICE DE FILME;

A consulta acima exibirá informações de índice da tabela de filmes no banco de dados Sakila. O resultado é:



Compreendendo as informações do índice

O comando SHOW INDEXES exibe as informações relevantes sobre os índices na tabela especificada.

Aqui estão os seguintes termos e suas respectivas informações fornecidas:

  1. Mesa: Esta é a primeira coluna da saída. Mostra o nome da tabela onde reside o índice.
  2. Não exclusivo: A segunda coluna mostra se o índice pode conter uma duplicata. O valor é um booleano, com 1 indicando que o índice pode conter duplicatas e 0 caso contrário.
  3. Key_name: A terceira coluna mostra o nome do índice. Por convenção, a chave primária recebe o nome de índice PRIMARY.
  4. Seq_in_index: A quarta coluna exibe o número de sequência da coluna no índice começando com o valor 1.
  5. Nome da coluna: A quinta coluna é simplesmente o nome da coluna.
  6. Collation: A sexta coluna é uma seção que mostra como a coluna é classificada no índice. Existem três valores de classificação, com A sendo a ordem crescente, B indicando a ordem decrescente e NULL como não classificado.
  7. Cardinalidade: A sétima coluna mostra a exclusividade do valor dos dados. Em índices, mostra o número estimado de valores únicos no índice específico.
  8. Sub_part: A oitava coluna exibe o prefixo do índice com NULL, indicando que toda a coluna está indexada.
  9. Embalado: A nona coluna mostra como as chaves de índice são compactadas, com NULL indicando que as chaves não estão compactadas.
  10. Nulo: A décima coluna especifica se a coluna pode conter valores NULL. Sim, se a coluna puder conter valores nulos e vazia se não puder.
  11. Index_type: A décima primeira coluna mostra o método de índice, como BTREE, HASH, RTREE e FULLTEXT.
  12. Comente: A décima segunda coluna mostra as informações sobre um índice não descrito em sua coluna.
  13. Index_comment: A décima terceira coluna mostra informações adicionais sobre o índice especificado usando o atributo COMMENT quando criado.
  14. Visível: A décima quarta coluna é o índice visível para o otimizador de consulta, com valores Sim e Não.
  15. Expressão: A décima quinta coluna é exibida se o índice usa uma expressão e não uma coluna ou valor de prefixo de coluna.

DICA: As informações sobre os índices da consulta SHOW INDEXES são semelhantes às de SQLStatistics.

Mostrar Índices de Esquema

Você também pode obter informações de índice sobre um esquema. A sintaxe geral para obter esse resultado é a seguinte:

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

Considere a consulta abaixo que mostra informações sobre o esquema Sakila:

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

Isso exibirá informações sobre os índices no esquema Sakila, conforme mostrado na saída abaixo:

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

|NOME DA TABELA|INDEX_NAME|

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

|ator|PRIMÁRIO|

|ator|idx_actor_last_name|

|Morada|PRIMÁRIO|

|Morada|idx_fk_city_id|

|Morada|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 no servidor usando a consulta mostrada abaixo:

SELECT table_name, index_name FROM information_schema.statistics;

NOTA : A consulta acima despeja muitas informações. Raramente você precisará obter índices de todos os esquemas. No entanto, um exemplo de saída está abaixo:

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

|NOME DA TABELA|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 SHOW INDEXES do MySQL para obter informações sobre os índices em uma tabela. Também examinamos o uso de information_schema para obter informações sobre os índices de um ou todos os esquemas em um servidor MySQL.