Pour ceux qui développent régulièrement des sites ou autres applications qui peuvent parfois être gourmandes en temps de traitement SQL sous Mysql, cet article est pour vous.
Vous ne connaissez peut-être pas encore Mysql Tunning Primer, en tout cas, moi je ne connaissais pas. Après avoir testé ce script de long en large, je trouve que 80% des retours d’optimisations de ce script sont plutôt pertinent. Au final j’ai gagné pas mal en temps de calcul machine après avoir apporté une bonne partie des modifications et optimisations proposées par le script.
Passons donc à la pratique pour Optimiser votre Mysql à l’aide de Mysql Tunning Primer.
Premièrement il vous faut télécharger le script (dont la dernière mise à jours date de Juillet 2011 au moment ou j’écris ces lignes directement sur le launchpad. Il vous suffit d’envoyer ce script sur votre serveur à l’aide de la méthode que vous souhaitez.
Dans un second temps vous ajoutez les droits d’exécution au script Mysql Tunning Primer:
chmod +x tunning-primer.sh
Dans un troisième temps vous attendez que votre Mysql soit en pleine activité (Mais vous prévenez auparavant vos utilisateurs d’éventuels ralentissements qui pourraient survenir) et vous balancez la sauce à l’aide de la simple commande:
./tuning-primer.sh
Vous laissez tourner puis il vous suffit d’appliquer toute ou partie des recommandations proposées par le script. Cette phase permet vraiment de plutôt optimiser le serveur.
Enfin la troisième partie va aider à trouver les requêtes très (trop?) gourmandes en ressource. Pour se faire suivez les instructions ci-dessous:
- Ouvrir le fichier de configuration de Mysql (my.cnf) généralement dans /etc/mysql/my.cnf
- Vous ajoutez les paramètres suivant:
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 1 - Vous redémarrer votre petit serveur Mysql à l’aide de la commande:
/etc/init.d/mysqld restart
- A partir de ce moment vous avez deux solutions. Soit vous venez de relancer votre Mysql en pleine prod (ce qui est mal n’est-ce pas!) et donc le serveur Mysql tourne bien du coup vous n’avez qu’a faire un petit:
tail -f /var/log/mysql/mysql-slow.log
Vous verrez ainsi la liste des requêtes « mal construite » arriver dans le fichier. Soit vous laissez tourner un moment (toujours en prévenant vos utilisateurs d’éventuels ralentissement) et vous analysez le fichier après coup.