Bonsoir,
le sujet date déjà un peu mais en me penchant à nouveau sur ce sujet, un autre élément m'est apparu comme un oubli majeur : la gestion du cache MySQL.
La première chose à vérifier serait le statut en cours :
mysql> SHOW VARIABLES LIKE 'query_cache%';
+------------------------------+----------+
| Variable_name | Value |
+------------------------------+----------+
| query_cache_limit | 2097152 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 0 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
+------------------------------+----------+
Si la valeur de query_cache_size est comme ici à 0, rien ne sera conservé en cache. On peut donc modifier ce paramètre dans le my.ini (ou my.cnf selon l'OS) et lui affecter une valeur par exemple de 10Mo qu'on mettra en octets, donc 10485760.
Enregistrer, relancer le serveur, et refaire des tests sur les requêtes : ça devrait très rapidement montrer une amélioration notable.
______________________________________________________________
Une question bien formulée, c'est un problème bien compris : ça représente déjà les 3/4 de la réponse ;)