Como mostrar todos os índices em mysql ou esquema

Como mostrar todos os índices em mysql ou esquema
Índice de banco de dados MySQL refere -se a um tipo de estrutura de dados usada como organização de dados em um banco de dados e para ajudar a avançar a velocidade de várias operações realizadas em MySQL.

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:

  1. Mesa: Esta é a primeira coluna da saída. Ele mostra o nome da tabela onde o índice reside.
  2. Não unigável: A segunda coluna mostra se o índice pode conter um duplicado. O valor é um booleano, com 1 indicando que o índice pode conter duplicatas e 0 se o contrário.
  3. Key_name: A terceira coluna mostra o nome do índice. Por convenção, a chave primária leva o nome do índice do primário.
  4. Seq_in_index: A quarta coluna exibe o número da sequência da coluna no índice a partir do valor de 1.
  5. Nome da coluna: A quinta coluna é simplesmente o nome da coluna.
  6. Agrupamento: A sexta coluna é uma seção que mostra como a coluna é classificada no índice. Existem três valores de classificação, sendo uma ordem ascendente, b indicando a ordem decrescente e nula como não derrotado.
  7. Cardinalidade: A sétima coluna mostra a singularidade do valor dos dados. Nos í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 é indexada.
  9. Embalado: A nona coluna mostra como as teclas de índice são embaladas, com nulo indicando que as chaves não são embaladas.
  10. Nulo: A décima coluna especifica se a coluna pode conter valores nulos. Sim, se a coluna puder conter valores nulos e vazios, se não.
  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 de comentário quando criado.
  14. Visível: A décima quarta coluna é o índice visível ao otimizador de consulta, com valores de sim e não.
  15. Expressão: A décima quinta coluna é exibida se o índice usar uma expressão e não uma coluna ou valor de prefixo da coluna.

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.