Performances MySQL 5.1: 2nd round

Dans le billet précédent, j'ai eu un premier aperçu de MySQL 5.1.30 au niveau des performances, à comparaison égale avec 5.0.76, où on peut constater une nette dégradation des performances, notamment au niveau des accès disques (IO).

J'ai voulu profiter de cet environnement de prod en test un peu plus, parce que c'est pas tous les jours qu'on a ce genre d'occasion ! Parce que la prod, comme son nom l'indique, n'est pas un environnement de tests.... passons, je sais que c'est mal, mais je sais que si ça crash, rien ne se verra, les applications continueront de fonctionner sans erreurs, vive le web 2.0 !!

J'ai donc pu tester une des nouvelles feature de 5.1: le partitionnement. En terme de performance (toujours, toujours...) ça donne quoi ?

Ce graph CPU représente la phase de partitionnement: 3 tables de ~100 millions d'enregistrements chacunes. 99% des requêtes SQL concerne un status: WHERE …

[Lire plus]
Les nouveautés de MySQL 5.1 — (part 5/5)


(<- précédent)

mysqlslap : un utilitaire de test de charge et de performance

Disponible depuis MySQL 5.1.4, mysqlslap permet d’effectuer des tests de stress et de charge sur votre serveur MySQL. Vous pourrez alors tester les performances de votre SGBDR préféré, après, par exemple, une nouvelle installation, un changement d’architecture ou après avoir modifié des paramètres de configuration.

Créé pour devenir le meilleur ami des administrateurs de bases de données et des développeurs, le client mysqlslap envoie des requêtes au serveur MySQL en créant plusieurs connexions simultanées. A la fin de la simulation, un rapport de diagnostic est crée sur la sortie standard. Vous avez aussi la possibilité de l’écrire dans un fichier au format CSV utilisable …

[Lire plus]
PHPTV : Les vidéos du forum PHP 1ere partie

Après avoir couvert le forum PHP 2008 organisé par l'AFUP (Association Française des Utilisateurs PHP).
L'équipe de PHP TV, met tous les deux jours la vidéo d'une séance plénière.
En voici la première vague des vidéos :

[Lire plus]
Event Scheduler

Je ne sais pas si je suis le seul à penser ça, mais je trouve qu’il y a peu de ressources (ou alors, je ne les connais pas) distribuant des exemples de procédures stockées, de fonctions, de triggers ou d’events scheduler. Pour pallier ce manque, je viens de publier une page avec le code d’un Event.

Je compte faire une page (et non un post, pour pas que ça tombe archiver avec le temps) avec des exemples de chaque type de routine, avec leurs particularités. Mon Event est donc le premier exemple d’une petite série à venir. Je n’explique pas en détail chaque ligne; je montre les possibilités et j’invite les gens intéressés à consulter la documentation pour mieux apprendre sur chaques features.

Mon exemple se trouve donc ici : http://www.noidea.ca/mysql-event-scheduler/

Moteur de table MySQL basé sur PHP

Les envies de passer sur la version supérieure du langage PHP ou d'utiliser votre base de donnée favorite comme MySQL, sont souvent stoppés à cause d'un manque de temps ou d'attendre que quelqu'un vous montre comment le faire.
Schlueters a publié et montre sur son blog qu'il a eu une envie et il a finalement sauté le pas.
Il nous montre comment utiliser le plug-in de MySQL 5.1 pour interfacer facilement les moteurs de stockage.
L'exemple qu'il a rédigé montre l'utilisation d'un moteur de table MySQL qui lit des données en appelant un script PHP
Je pense que certains vont d'entre vous auront d'autres idées, inspirés de tout cela.

Les dernières tendances de l'open source

Le Mug (Association MySQL User Group) lance un nouveau rendez-vous le 14 janvier 2009 sous la forme d'un débat et d'échanges autour des dernières tendances de l'open source
Il s'agit d'un rendez-vous gratuit ouvert à tous.
Il suffit de lire le communiqué officiel pour connaître toutes les informations.

Invitation du MySQL User Group : les dernières tendances de l’Open Source

Ayant survécu à un récent déménagement de Sophia-Antipolis vers la région parisienne ainsi qu’à la première vague de ces fêtes de fin d’année, pour marquer l’évènement et vu que j’ai retrouvé mon clavier, je vous gratifie d’une petite news qui intéressera sans doute quelques-uns d’entre vous.

Le 14 janvier prochain aura lieu une soirée Open Source organisée par Sun à l’occasion du passage à Paris de Simon Phipps, leur “Chief Open Source Officer”. C’est l’occasion de réunir plusieurs clubs utilisateurs de solutions Open Source dont votre dévoué lemug.fr pour la partie MySQL.

Voici les grandes lignes de cette soirée du mercredi 14 janvier prochain :

  • 18h30 —  Accueil
  • 19h00 — Simon Phipps, Chief Open Source Officer, …
[Lire plus]
Ça fait quoi un DBA ?!

Parfois, et surtout durant les fêtes, on me demande ce que je fais dans la vie. Je suis DBA, ou Administrateur de Base de Données. 95% des gens à qui je réponds ne savent pas ce que je fais. Alors, j’explique qu’est-ce qu’une base de données et le type d’application propice à en utiliser, et j’opte pour les exemples:

  • Je m’assure que la BD est performance
  • Je m’assure de l’intégrité des données
  • Je m’assure qu’il n’y aura pas de downtime
  • Je m’assure des backups

Beaucoup de gens ne comprennent toujours pas ce que je fais, mais bon, tant pis je vais pas leur donner un cours.

Tout ça me fait réfléchir sur ce que font concrètement les gens qui ont un emploi comme moi. Les 4 points que je donne en exemple ne sont souvent pas suffisants pour occuper un employé à temps plein, à 40h par semaine.

Pour ma part, mon background de …

[Lire plus]
MySQL 5.1 en prod: impact sur les performances

MySQL 5.1 GA est sortie en grande pompe, et tout le monde y va de son billet, pour ou contre. J'ai pu le mettre en environnement de production en mode master/slave et slave: le premier est slave d'un 5.0.56, et master d'un 2ème serveur en 5.1.30.

On peut nettement apercevoir sur le graph CPU suivant, la mise en prod de la version 5.1.30, avec une très nette augmentation des IO disques ! Le slave (22), en 5.0, prenait parfois du délais lors de la regénération de tables, en 5.1 il prend nettement plus de délais. Je n'ai même pas testé les nouvelles fonctionnalités comme le partitionnement, ayant lu sur plusieurs articles que cette version était encore trop buguée si on les utilisait...

Ah oui, et c'est pas tout... Le master/slave (21) a lamentablement crashé, après 6 jours seulement d'utilisation ! Un ticket est ouvert chez MySQL, qui n'a pas de solution, et attend le prochain crash avec cette fois les core …

[Lire plus]
MySQL 5 : Les vues — (part 5/7)

(<- précédent)

Masquer la complexité du schéma

L’équipe de développement doit écrire un moteur de recherche pour une application de commerce électronique. Voici un extrait des tables de la base de données impliquées dans la recherche des produits du site.

La difficulté est de générer la bonne requête avec les bonnes jointures (plus d’une dizaine), à chaque recherche. Une solution pour faciliter le travail des développeurs est de créer une vue qui fait référence à toutes les tables impliquées dans la recherche des produits. Les recherches se feront donc sur cette vue, avec des requêtes plus simples à écrire.

La vue est créée avec l’algorithme TEMPTABLE, les verrous sur les tables sous-jacentes seront libérés plus rapidement ce qui permettra de moins pénaliser les autres requêtes. …

[Lire plus]