News MYSQL

le 12/07/2008 à 21:32
mysqlsla 2.0 publié
mysqlsla est un analyseur de log MySQL qui permet d'extraire les informations importantes des logs MySQL. Ces derniers stockent les requêtes brutes, et il est parfois difficile de repérer les requêtes qui sont identiques, à quelques variables ou valeurs près. mysqlsla est alors là pour ça.

Ce problème de requêtes similaire est une raison de plus pour passer aux commandes préparées de MySQL : avec les commandes préparées, la requête est dissociée des valeurs d'exécution, et le stockage dans le log MySQL devient constant : la requête d'un coté, les valeurs de l'autre. Et on peut aussi arriver au même résultat avec les variables MySQL.

- mysqlsla 2.0 released
- mysqlsla
mylvmbackup est un outil pour réaliser rapidement des copies de sauvegardes de données dans un serveur MySQL.
Pour ce faire, mylvmbackup obtient un verrou sur toute les tables, écrit les caches sur le disque, fait une copie LVM du volume contenant les données MySQL, puis libère les tables. Le processus prend alors quelques instants

Lorsque c'est fini, le serveur peu reprendre son fonctionnement normal.

- mylvmbackup
le 10/07/2008 à 21:09
Vues matérialisées : flexyview
Justin Swanhart publie Flexviews, des vues matérialisées pour MySQL, basée sur des procédures stockées. Ce sont des vues qui sont réellement enregistrées sur le disque, et non pas générées à chaque sollicitations. L'avantage est de bénéficier des capacités d'indexation des vraies tables, et l'inconvénient est de devoir faire la mise à jour de la table.

C'est là que Flexviews intervient : avec quelques procédures stockées, Justin a mis en place des outils pour mettre à jour la table. Les méthodes de mise à jour sont COMPLETE, qui remplace la table existante par une nouvelle, et INCREMENTAL, qui est capable de faire une petite mise à jour, sans tout recalculer. Les coûts de mises à jour peuvent être assez élevé, mais les gains de performances pour les lectures sont nettement plus importants.

- Flexviews-1.0.2-alpha released
- Flexviews
- Flexviews - A performance overview (incremental refresh is 30x faster!)
L'une des fonctionnalités phare de MySQL 6 sera la sauvegarde : au lieu de passer simplement par mysqldump, pour exporter les données, puis par mysql (le client en ligne de commande), pour tout réimporter, des commandes SQL seront dédiées à la sauvegarde et la restauration des données :

backup database employees to 'emp2.bkp';
restore from 'emp2.bkp';

Les premiers tests de Guiseppe Maxia affichent des gains de vitesse de 6 fois. La sauvegarde peut même être encore plus rapide si on ignore les index (mais la restauration sera alors beaucoup plus lente).

Jetez un oeil sur la documentation en ligne et les exemples de Guiseppe. Pendant que vous regarderez la doc MySQL, jetez un oeil sur le "MySQL Load Balancer", qui est indisponible maintenant, mais semble programmé pour la version beta.

Pour faire un test rapide de MySQL 6, utilisez donc la mysql sandbox.

- http://datacharmer.blogspot.com/2008/07/faster-online-backup-with-myisam-driver.html
- Even faster online backup!
- Téléchargement MySQL 6
- Backup and recovery
- MySQL load balancer
"comment s'assurer que son serveur MySQL tiendra la charge ? 1000 requêtes /s en insertion sont prévues le jour de la sortie de votre prochain service internet : votre serveur sera t-il capable d'y faire face ?

Les deux outils présentés aujourd'hui permettent de simuler la charge reçue par le serveur MySQL en fonction de différentes paramètres dont le nombre de connexions simultanées et le nombre de requêtes par utilisateurs. Avec de tels outils, vous pouvez par exemple tester mysqlslap sur une de vos requêtes clé, visualiser comment celle-ci réagit sous différentes configurations, et visualiser un score à base de temps d'exécution. Une fois ce score récupéré, comparez-le avec celui que vous obtiendriez avec la même requête modifiée par vos soins, avez-vous progressé ?"
le 07/07/2008 à 20:46
Abus de LEFT JOIN
Arjen Lentz propose une solution pour éviter les abus de LEFT JOIN :

"Si vous n'avez aucune raison pour utiliser un LEFT JOIN, n'en utilisez pas".

Trop souvent, LEFT JOIN est la jointure par défaut dans les applications, alors qu'un JOIN classique, avec condition de jointure, serait correct et suffisant. Réfléchissez-y, cela fait souvent plus de sens, et moins de travail pour le serveur MySQL.

- Abuse of LEFT JOIN
le 07/07/2008 à 20:45
log_error pour MySQL
Log_error() pour MySQL est une fonction utilisateur qui enregistre un message dans le log d'erreur de MySQL. Pour pouvoir l'extraire plus rapidement ultérieurement, un indicateur est ajout à la fin du message.

Pourquoi écrire dans le log d'erreur ? Pour le débogage, ou pour simplement enregistrer quelque chose d'important pour votre application.

- Writing to the MySQL error log
- log_error pour MySQL
le 04/07/2008 à 23:28
Calculer les centiles MySQL
Les centiles sont une des 99 valeurs qui divise les données triées en 100 parts égales. Le premier centile (abusivement appelé percentile, de la version anglaise), identifie les valeurs le plus basses du groupe. On connaît souvent la médiane, qui découpe le groupe en 2 part de même taille : le concept est similaire.

Roland Bouman publie un article où il arrive à calculer les percentiles sans jointures, sous-requêtes ni variables utilisateurs : il se base sur GROUP_CONCAT, et SUBSTRING pour ordonner le groupe, et en extraire des portions intéressantes. Le tout se fait en une seule passe, et quelques manipulations de chaînes.

C'est un bon truc, mais je crois que je préfèrerai les variables utilisateurs, pour éviter de concaténer des chaînes trop grosses dans group_concat. 

- Calculating the Nth percentile in MySQL
- Calculating the financial median in MySQL
le 03/07/2008 à 20:33
MySQL proxy tests de performances
Alex Tomic a testé le proxy MySQL en charge sur EC2 : un proxy et 4 serveurs MySQL. Les requêtes sont réparties sur 4 serveurs MySQL, et distribuées (entrée et sortie) via le proxy. Les résultats montrent que le point critique est entre 4 et 8 threads concurrents : en dessous de ce niveau d'activité, le surcoût de MySQL proxy rend l'architecture plus lente.

Une fois ce cap passé, le gain devient plus intéressant, et l'archi proxy est capable de monter en puissance jusqu'à 4 fois la charge nominale de chaque serveur.

- mysql proxy 0.6.1 performance tests
- mysql proxy project
le 02/07/2008 à 21:03
Revue de MONyog, moniteur pour MySQL
Sheeri Kabral passe en revue MONyog, un moniteur MySQL dédié. Il s'installe en quelques minutes, surveille les requêtes SQL (tentatives de piratage, qualité des requêtes SQL), et produit des graphiques de performances. MONYog se distingue des autres outils de surveillance, comme MySQL entreprise, par l'absence d'agent local : pas besoin d'installation particulière sur le serveur de destination pour le suivre.

MONyog coûte 129$ US, avec 1 an de support.

- Reviewing MONyog
- MONyog
- MonYog screenshot
LoadingChargement en cours