Index : optimiser une recherche grâce aux index
Mise en place :
- téléchargez le fichier villes-no-index.sql fourni en pièce jointe
- créez une nouvelle base de données villesnoindex
- importez le fichier villes-no-index.sql dans la db villesnoindex
Une fois que c'est fait, exécutez cette requête dans votre nouvelle base :
SELECT departement_nom, ville_departement, SUM(`ville_surface`) AS dpt_surface FROM `villes_france_free` LEFT JOIN departement ON departement_code = ville_departement GROUP BY ville_departement ORDER BY dpt_surface DESCCette requête vous permet d'obtenir la liste des départements, classés par superficie et triés dans l'ordre décroissant.
Relevez le temps d'exécution de la requête que vous donne phpMyAdmin.
Voici un exemple sur mon pc :

Notez votre résultat quelque part (sur l'image : 0,2102 secondes).
Dites-vous qu'une requête de 0.2 sec, c'est beaucoup. Une bonne requête doit être rapide.
Maintenant, créez des index sur les champs departement_code et ville_departement.
Relancez la requête, puis relevé le nouveau temps de d'exécution :

Dans cet exemple, on est passé de 0.2102 secondes, à 0.1498, soit plus de 25% de temps de réponse en moins grâce aux index. Et notre table villes ne fait "que" 36700 lignes. Ce qui est relativement petit comparé à d'autres tables (une table peux facilement contenir des millions de lignes). On peut donc aisément avoir des requêtes qui prennent quelques secondes si la table est très grosse et/ou la requête SQL mal faite.
- 8 mars 2021, 11:42