Upgrade du serveur MySQL de Fedora-Fr de la version 5.0 vers la 5.1

Sysadmin

Suite au billet de Remi sur son blog, annonçant la fin du support de MySQL 5.0 sur le dépot remi, j’ai entrepris de migrer Borsalino de la version 5.0 vers la 5.1. Je savais que les scripts tournant sur le serveur ne poseraient pas de problèmes car c’est déjà sous cette version de la base de données que je développe.

Une fois le yum update lancé, j’ai coupé le serveur et lancé un mysql_upgrade. Le résultat a été assez surprenant vu que toutes mes tables ont été préfixées par un #mysql50#… La solution : 

mysqlcheck --check-upgrade --fix-db-names --fix-table-names --all-databases --password=<votresecret>

Une fois les frayeurs passées, je croyais être tiré d’affaire. Et bien non ! En effet, nous avons assisté aujourd’hui à une montée en charge de MySQL et a des locks sauvages sur des requêtes.

Après enquête, aidé de Remi, nous avons pu incriminer une requête bien particulière et avec un coup de regexxer, nous avons pu trouver le coupable : le plugin qui fourni les RSS des forums. En effet, ce mode pose clairement un problème sur les gros forums, la cause en est une requête arrogante avec de multiples jointures le tout trié par date pour, au final, n’en récupérer que les 15 derniers via une clause LIMIT.

Petit rappel MySQL, si on fait un tri sur 500.000 champs et que l’on en prend que 15, la requête va quand même faire des opérations sur 500.000 champs et dans le cas de ce plugin, passer par une table temporaire… Bref, au final, ça fait des slow-queries dans tout les sens !

La solution, faire un maximum de discriminations dans la clause WHERE afin de rapatrier moins de ligne. Pour info, j’ai posté une rapide rustine sur les forums de fluxBB.fr

Commentaires

celmir

Mysql 5.1 est annoncé dans la presse magasine comme une version boguée.

Pourtant tu ne sembles pas avoir rencontré de difficultés, qu'en penses-tu ?

Les commentaires pour ce poste sont fermés.

Réseaux sociaux