News MYSQL

MySQL publie 5 conseils pour mieux approcher la montée en charge des applications sur un serveur MySQL. Ce sont des conseils pratiques, souvent prodigués par les experts MySQL lors de la phase d'architecture :
- ne pensez pas synchrone
- ne pensez pas vertical
- ne confondez pas les transactions et l'intelligence d'affaires
- ne mélangez pas les données actives et passives
- n'oubliez pas la puissance de la mémoire

- Top Five Scale-Out Pitfalls to Avoid
- Consolidates its eCommerce Systems on MySQL Enterprise
le 18/06/2007 à 20:17
Le futur de la réplication MySQL
Voici les prochaines fonctionnalités que la réplication MySQL devra supporté, tel que recensé dans un sondage sur le futur de cette technologie :
- vérifications en ligne que le maître et l'esclave sont en ligne : 45.4%
- réplication muli-source: réplication depuis plusieurs maîtres vers un esclave : 36.3%
- application multi-threadées des données sur l'esclave pour améliorer les performances : 29.2%
- résolution de conflit : détection précoce que les lignes ne sont pas répliquées : 21.0%
- réplication semi-synchrone : les transactions sont copiées vers un esclave avant archivage : 20.3%

- The replication poll and our plans for the future
le 18/06/2007 à 00:15
Le moteur Blackhole de MySQL
Note de l'auteur :

Le moteur Blackhole de MySQL est un moteur un peu spécial : il n'enregistre aucune donnée. Ni en mémoire, ni sur le disque, ni sur le réseau ni null part : direction /dev/null.

Mais alors, à quoi peut-il donc servir ?

C'est ce que je me suis demandé, et les résultats ont été très surprenants !

- Le moteur Blackhole pour MySQL
le 18/06/2007 à 00:05
GROUP BY en détails
Note de l'auteur :

Il court encore quelques mythes et légendes sur la clause SQL GROUP BY. Ce myth raconte que le 'standard SQL' impose la présence de la colonne sélectionnée dans la liste de colonne affichée par SELECT pour pouvoir être utilisé dans la clause GROUP BY, à moins que cette colonne n'apparaisse exclusivement dans une expression d'agrégation. MySQL est souvent accusé de violer ce standard.

Dans cet article, je vais tenter d'enterrer ce mythe, en vous donnant un aperçu plus complet du traitement de GROUP BY par MySQL.

- Debunking GROUP BY Myths
le 18/06/2007 à 00:02
Charger une base en mémoire
Si vous voulez gagner en performances, pour des tests ou en production, et que vos données en sont pas trop grosses, il peut être intéressant de migrer les tables en mémoire, et utiliser le moteur de table 'memory' (anciennement HEAP).

Toutefois, le moteur memory n'est pas l'alter ego de InnoDB ou MyISAM, sinon, il sera bien plus souvent utilisé. Amedias a découvert qu'il devait effacer les clés étrangères pour pouvoir transformer ses tables InnoDB en tables memory.

Pour faire la transformation de moteur, et l'abandon des clés étrangère, il suffit de faire un tour dans la base informatin_schema : en une boucle, le tour est joué.

Il faut aussi noter que si la structure de la table est conservée, les données seront perdues au redémarrage du serveur. Il est donc recommandé de travailler sur une copie des données, mais jamais sur les données critiques.

- Loading a MySQL database in memory
- 14.4. The MEMORY (HEAP) Storage Engine
le 13/06/2007 à 22:52
Stratégies d'archivage sur MySQL
Note de l'auteur :

L'archivage de données est un sujet très large! Mon but est de mentionner au moins tous les aspects à prendre en considération, et ceux à fouiller en profondeur. Voici quelques sujets que je vais aborder dans cette série d'article :
- les buts de l'archivage
- où stocker les données archivées
- comment choisir les données qui doivent être archivées
- comment gérer les données complexes, leurs relations et dépendances
- comment archiver les données
- comment désarchiver les données

- Archive strategies for OLTP servers, Part 1
- How to efficiently archive and/or purge data from online transaction processing (OLTP) database servers
le 13/06/2007 à 20:00
MySQL sur Windows ? bien sûr !
MySQL sur Windows est bien sûr possible, et certains, comme Robin Schumacher, en sont même entichés. Selon les statistiques de téléchargement, la plate-forme Windows apparait nettement en premier : ce qui ne me surprend pas. Les utilisateurs de Windows sont toujours les plus nombreux, et mécaniquement, ils seront plus nombreux à charger MySQL sur Windows.

Robin passe en revue les différents aspects de MySQL sur Windows : installation, configuration, développement, ainsi que quelques limitations, comme l'absence du Cluster.

- MySQL on Windows ? Absolutely !
le 08/06/2007 à 20:41
5 mois avec le cluster MySQL
Aujourd'hui, c'est un retour sur l'utilisation du cluster MySQL pour une application Web. Le cluster est issu du monde des télécom, et répond à des besoins en écriture plutôt qu'en lecture. Mais le cluster, s'il est plus lent lorsque le nombre de connexions simultanée est bas, monte en charge de manière bien plus linéaire.

M. Moon indique notamment qu'il a du réécrire son application pour tirer profit du Cluster. C'est un pré requis qui est encore souvent oublié : on ne peut pas remplacer InnoDB par NDB sans remanier son code PHP. Les jointures et les sous-sélections ne sont pas les bienvenues.

Notons aussi que MySQL 5.0.38 est utilisé dans cette expérience, et MySQL 5.1 devrait apporter des améliorations dans de nombreux domaines.

- Five months with MySQL Cluster
- Dealnews
le 07/06/2007 à 20:49
DBRD, Continuent et MySQL CLuster
Les solutions de cluster MySQL sont de plus en plus nombreuses, mais elles ne plaisent pas à tout le monde.
C'est le cas de irwan, qui a travaillé sur MySQL Cluster et Continuent, avant de passer à DRDB pour MySQL, et trouver son bonheur.

Il livre sa configuration pour une installation Red Hat.

- A Journey On DRBD For MySQL
- DRBD For MySQL
- Cluster MySQL
- Continuent
- MySQL High Availability Solutions
le 07/06/2007 à 20:47
Replace == delete + insert
Replace est une extension du langage SQL par MySQL, où le serveur vérifie la présence d'une donnée (en se basant sur la clé primaire), pour réaliser une insertion (si elle est absente) ou un remplacement (si elle est présente). Cette commande permet de passer une seule instruction pour faire une opération en deux temps : select puis insert ou update.

L'implémentation de replace est en fait un delete puis insert. Cela peut conduire à des comportements inattendus, comme le présente Christohpe Gesché.

- REPLACE reset les valeurs non spécifiées
- REPLACE syntaxe
LoadingChargement en cours