Resumo : neste tutorial, você aprenderá como consultar informações de índice de uma tabela usando o SHOW INDEXES
comando MySQL.
Introdução ao comando MySQL SHOW INDEXES
Para consultar as informações do índice de uma tabela, você usa a SHOW INDEXES
seguinte instrução:
SHOW INDEXES FROM table_name;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Para obter o índice de uma tabela, você especifica o nome da tabela após a FROM
palavra-chave. A instrução retornará as informações do índice associadas à tabela no banco de dados atual.
Você pode especificar o nome do banco de dados se não estiver conectado a nenhum banco de dados ou quiser obter as informações do índice de uma tabela em um banco de dados diferente:
SHOW INDEXES FROM table_name
IN database_name;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A consulta a seguir é semelhante à anterior:
SHOW INDEXES FROM database_name.table_name;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Observe que INDEX
e KEYS
são sinônimos de INDEXES
, IN
é sinônimo de FROM
, portanto, você pode usar esses sinônimos na SHOW INDEXES
coluna. Por exemplo:
SHOW INDEX IN table_name
FROM database_name;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Ou
SHOW KEYS FROM tablename
IN databasename;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O SHOW INDEXES
retorna as seguintes informações:
mesa
O nome da mesa
não_único
1 se o índice puder conter duplicatas, 0 se não puder.
nome_chave
O nome do índice. O índice de chave primária sempre tem o nome de PRIMARY
.
seq_in_index
O número de sequência da coluna no índice. O número de sequência da primeira coluna começa em 1.
nome da coluna
O nome da coluna
agrupamento
O agrupamento representa como a coluna é classificada no índice. A
significa ascendente, B
significa descendente ou NULL
significa não classificado.
cardinalidade
A cardinalidade retorna um número estimado de valores exclusivos no índice.
Observe que quanto maior a cardinalidade, maior a chance de o otimizador de consulta usar o índice para pesquisas.
sub_parte
O prefixo do índice. É nulo se toda a coluna estiver indexada. Caso contrário, mostra o número de caracteres indexados caso a coluna esteja parcialmente indexada.
embalado
indica como a chave é empacotada; NUL se não for.
nulo
YES
se a coluna contiver valores NULL e em branco se não contiver.
tipo_índice
representa o método de índice usado, como BTREE
, HASH
, RTREE
ou FULLTEXT
.
Comente
As informações sobre o índice não estão descritas em coluna própria.
comentário_índice
mostra o comentário do índice especificado quando você cria o índice com o COMMENT
atributo.
visível
Se o índice está visível ou invisível para o otimizador de consulta ou não; YES
se for, NO
se não.
expressão
Se o índice usar uma expressão em vez de uma coluna ou valor de prefixo de coluna, a expressão indicará a expressão para a parte chave e também a column_name
coluna será NULL.
Filtrar informações de índice
Para filtrar informações de índice, você usa uma WHERE
cláusula como a seguir:
SHOW INDEXES FROM table_name
WHERE condition;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Você pode usar qualquer informação retornada pela SHOW INDEXES
instrução para filtrar as informações do índice. Por exemplo, a instrução a seguir retorna apenas os índices invisíveis de uma tabela:
SHOW INDEXES FROM table_name
WHERE VISIBLE = 'NO';
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Exemplos de SHOW INDEXES do MySQL
Criaremos uma nova tabela chamada contacts
para demonstrar o SHOW INDEXES
comando:
CREATE TABLE contacts(
contact_id INT AUTO_INCREMENT,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
email VARCHAR(100),
phone VARCHAR(20),
PRIMARY KEY(contact_id),
UNIQUE(email),
INDEX phone(phone) INVISIBLE,
INDEX name(first_name, last_name) comment 'By first name and/or last name'
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O comando a seguir retorna todas as informações de índice da contacts
tabela:
SHOW INDEXES FROM contacts;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A saída é:
Para obter os índices invisíveis da contacts
tabela, adicione uma WHERE
cláusula como segue:
SHOW INDEXES FROM contacts
WHERE visible = 'NO';
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Aqui está a saída:
Neste tutorial, você aprendeu como usar a SHOW INDEXES
instrução MySQL para obter as informações do índice de uma tabela.