Como ver os índices de um database ou tabela?

Como faço para ver se meu database tem algum índice nele?

Que tal uma mesa específica?

Para ver o índice de uma tabela específica, use SHOW INDEX:

SHOW INDEX FROM yourtable; 

Para ver os índices de todas as tabelas dentro de um esquema específico, você pode usar a tabela STATISTICS de INFORMATION_SCHEMA:

 SELECT DISTINCT TABLE_NAME, INDEX_NAME FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = 'your_schema'; 

Remover a cláusula where mostrará todos os índices em todos os esquemas.

Se você quiser ver todos os índices em todos os bancos de dados de uma só vez:

 use information_schema; SELECT * FROM statistics; 
 SHOW INDEX FROM mytable FROM mydb; SHOW INDEX FROM mydb.mytable; 

Veja a documentação .

Você poderia usar essa consulta para obter o número de índices, bem como os nomes de índice de cada tabela no database especificado.

 SELECT TABLE_NAME, COUNT(1) index_count, GROUP_CONCAT(DISTINCT(index_name) SEPARATOR ',\n ') indexes FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = 'mydb' AND INDEX_NAME != 'primary' GROUP BY TABLE_NAME ORDER BY COUNT(1) DESC; 

Eu proponho esta consulta:

 SELECT DISTINCT s.* FROM INFORMATION_SCHEMA.STATISTICS s LEFT OUTER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS t ON t.TABLE_SCHEMA = s.TABLE_SCHEMA AND t.TABLE_NAME = s.TABLE_NAME AND s.INDEX_NAME = t.CONSTRAINT_NAME WHERE 0 = 0 AND t.CONSTRAINT_NAME IS NULL AND s.TABLE_SCHEMA = 'YOUR_SCHEMA_SAMPLE'; 

Você encontrou todos os índices apenas do Index.

Que diz respeito.

Para verificar todos os índices desativados no db

 SELECT INDEX_SCHEMA, COLUMN_NAME, COMMENT FROM information_schema.statistics WHERE table_schema = 'mydb' AND COMMENT = 'disabled' 

Isso funciona no meu caso para obter o nome da tabela e o nome da coluna na tabela correspondente para campos indexados.

 SELECT TABLE_NAME , COLUMN_NAME, COMMENT FROM information_schema.statistics WHERE table_schema = 'database_name'; 

Você pode verificar seus índices no ambiente de trabalho do MySQL. Nas abas de relatórios de desempenho você pode ver todos os índices usados ​​e índices não utilizados no sistema. ou você pode triggersr a consulta.

 select * from sys.schema_index_statistics; 
Intereting Posts