Ça fait quelques mois que abuledu.net commence a être très très lent (enfin, d'après moi vu que c'est mon outil de tous les jours), la raison principale de ces lenteurs à mon avis est lié au fait que la base commence à prendre une taille sympathique.

Alors, après avoir mangé la doc de l'optimisation de mysql (my.cnf, gestion de la ram, optimisations des clés etc.), j'ai commencé à regarder du côté de mysql-proxy, puis memcached (lié à mysql-proxy) ... et puis finalement j'en suis arrivé à la conclusion habituelle dès lors qu'il est question de lenteurs en SQL ... optimise donc ton code source plutôt que de te lancer dans un cluster avec 4 serveurs mysql: abuledu.net n'est pas encore ebay (c'est de moi).

J'ai donc repris les quelques centaines de lignes de SQL à la recherche des requêtes op-ti-mi-sa-bl-es (bon sang !), ça n'a pas changé grand chose. Et puis tout a coup je me suis demandé si ça ne serait pas lié à des VIEWS que j'ai (j'en utilise deux) et qui me permettent de simplifier dramatiquement mes requêtes SQL ... et bingo.

Amélioration de 45 pour un tout de même, oui ma page d'accueil ne mets plus qu'une seconde pour s'afficher au lieu d'environ 45 secondes avant ! Si vous voulez donc mon conseil du jour: oubliez les VIEWS avec MySQL ça vous économisera des dimanches et faites plutôt une table dans laquelle vous insérez le résultat de la vue et que vous actualisez de temps en temps via un cron par exemple.