Diagnostiquer
EXPLAIN QUERY PLAN SELECT …; -- SQLite
EXPLAIN SELECT …; -- MariaDB/MySQL
EXPLAIN ANALYZE SELECT …; -- PostgreSQL (temps réels)SCAN / ALL / Seq Scan sur une grosse table = candidat à un index.
Créer
CREATE INDEX idx_commandes_client_date ON commandes (client_id, date);
DROP INDEX idx_commandes_client_date;
Règles
- Les clés primaires et colonnes
UNIQUEsont déjà indexées. - Index composé : utilisable pour la première colonne seule, pas pour la seconde seule.
LIKE '%mot'et les fonctions sur la colonne empêchent l'usage de l'index.- Chaque index ralentit INSERT/UPDATE et occupe de la place.