Comment puis-je voir si ma base de données contient des index ?
Et pour une table spécifique ?
Comment puis-je voir si ma base de données contient des index ?
Et pour une table spécifique ?
Pour voir l'index d'une table spécifique, utilisez SHOW INDEX :
SHOW INDEX FROM yourtable;
Pour voir les index de toutes les tables d'un schéma spécifique, vous pouvez utiliser la table STATISTICS de INFORMATION_SCHEMA :
SELECT DISTINCT
TABLE_NAME,
INDEX_NAME
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'your_schema';
En supprimant la clause where, on obtient tous les index dans tous les schémas.
SHOW INDEX FROM mytable FROM mydb;
SHOW INDEX FROM mydb.mytable;
Voir documentation .
Vous pouvez utiliser cette requête pour obtenir le nombre d'index ainsi que les noms d'index de chaque table dans la base de données spécifiée.
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;
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.