Aug/083
MySQL Performance Tuning à Montréal
Je vous parlais récemment du cours MySQL Performance Tuning, et contrairement à ce que je disais, j’ai pu y assister. J’aurais aimé que le cours parle de la configuration du serveur sur lequel se trouve MySQL, car un OS bien optimisé va évidemment offrir beaucoup de performance à MySQL. Mais étant donné que plus d’une 20aine de plateformes sont supportés, nous pourrions en discuter pendant plusieurs semaines. En fait, le cours focus principalement sur la configuration et l’utilisation qu’on en fait.
Il n’y a pas d’option magique à activer pour que MySQL performe bien. Il n’y a pas non plus d’outil statistique comme ceux d’Oracle qui permet automagiquement de comprendre la charge de travail et s’ajuster en conséquence (Notez cependant que c’est un feature prévu avec Falcon). Le Tuning avec MySQL est une question de feeling. Lorsqu’on connaît comment le serveur est fait, qu’on connaît tous les buffers et logs des différents Storages Engine, il est possible de savoir et prévoir qu’est-ce qui sera performant ou non pour toutes sortes de situations. Il reste ensuite à valider que nos choix sont optimales avec une série de tests (benchmarks).
Le cours dure 4 jours et nous permet de voir derrière le rideau, c’est à dire comment les données sont manipulées à l’interne. Les sujets qui m’ont plus marqué sont:
- Les index (les préfixes, les covering index, les clustered index d’InnoDB, les index sur une table MEMORY, etc…)
- Pourquoi et comment choisir un Storage Engine plutôt qu’un autre
- Les outils de benchmarking
- La normalisation et la dénormalisation des tables
- La mécanique derrière les storage engines (leurs buffers, leurs systèmes de log, leur features spécifiques, etc..)
- Comment tirer avantage des nouveaux features de MySQL 5.0 et 5.1 (View, Stored Procedure, Trigger, Partitionning, etc..)
En conclusion, j’ai bien aimé le cours. Même si certains chapitres ne sont que de la revision, il y a toujours matière à réfléchir et je vais retourner au boulot avec un tas de nouvelles idées.