¿Cómo ver los índices de una base de datos o tabla?

¿Cómo veo si mi base de datos tiene algún índice?

¿Qué tal una mesa específica?

Para ver el índice de una tabla específica use SHOW INDEX:

SHOW INDEX FROM yourtable; 

Para ver los índices de todas las tablas dentro de un esquema específico, puede usar la tabla ESTADÍSTICAS de INFORMATION_SCHEMA:

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

Al eliminar la cláusula where, se mostrarán todos los índices en todos los esquemas.

Si desea ver todos los índices en todas las bases de datos a la vez:

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

Ver documentación .

Puede usar esta consulta para obtener el no de índices, así como los nombres de índice de cada tabla en la base de datos especificada.

 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; 

Propongo 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'; 

Encontraste todo el índice Index only .

Considerar.

Para verificar todos los índices deshabilitados en db

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

Esto funciona en mi caso para obtener el nombre de la tabla y el nombre de la columna en la tabla correspondiente para los campos indexados.

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

Puede verificar sus índices en el banco de trabajo MySQL. En las tabs de informes de rendimiento puede ver todos los índices usados ​​y los índices no utilizados en el sistema. o puedes disparar la consulta.

 select * from sys.schema_index_statistics;