¿Cómo puedo ver si mi base de datos tiene algún índice?¿Cómo ver los índices de una base de datos o tabla?
¿Qué tal para una tabla específica?
¿Cómo puedo ver si mi base de datos tiene algún índice?¿Cómo ver los índices de una base de datos o tabla?
¿Qué tal para una tabla específica?
para ver el índice para un uso específico tabla SHOW INDEX:
SHOW INDEX FROM yourtable;
Para ver los índices para todas las tablas dentro de un esquema específico puede utilizar la tabla de estadísticas de INFORMATION_SCHEMA:
SELECT DISTINCT
TABLE_NAME,
INDEX_NAME
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'your_schema';
Extracción la cláusula where le mostrará todos los índices en todos los esquemas.
SHOW INDEX FROM mytable FROM mydb;
SHOW INDEX FROM mydb.mytable;
Ver documentation.
Si quieres ver todos los índices en todas las bases de datos de todos a la vez:
use information_schema;
SELECT * FROM statistics;
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';
que pueda encontrar toda Índice única índice.
Regard.
Puede usar esta consulta para obtener el número 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;
Para una tabla específica:
SELECT *
FROM sys.indexes
WHERE object_id = (
SELECT object_id
FROM sys.objects
WHERE name = 'yourTableName'
)
Eso sería para MS SQL Server ... – AnthonyVO
Puede comprobar sus índices de MySQL workbench.under los informes de rendimiento más aquí se puede ver todos los índices utilizados y los índices utilizados en el sistema. o puedes disparar la consulta.
select * from sys.schema_index_statistics;
Este código no funciona –
Paul qué herramienta está utilizando? Este código funciona para en mysql workbeanch. –
Lo usé en shell MySQL –
Tenga en cuenta que la palabra clave 'DISTINCT' enmascara algunos índices: tengo una tabla donde un índice tiene el mismo nombre pero se usa en dos columnas diferentes, por lo que el ejemplo del esquema de información aquí solo mostrará un índice. – Ben
Tuve que agregar 'from mydb' como se muestra en la respuesta de LiorK. – Nate
ver http://blog.9minutesnooze.com/mysql-information-schema-indexes/ – Pisu