Archive pour le mot-clef ‘livres’

Encore un nouveau livre sur MySQL !

Vendredi 18 juin 2010

Après l’excellent « MySQL5, Audit et optimisation » sorti fin mars, voici un nouveau livre pour vous occuper sur la plage cet été : MySQL5, Administration et optimisation.
Pour vous mettre l’eau à la bouche, la TDM_MySQL5_Admin_Optim et un Extrait_MySQL5_Admin_Optim consacré aux verrous et transactions sont disponibles

Le livre est bien sûr disponible dans toutes les bonnes librairies informatiques et autres FNAC, Amazon …

Bonne lecture !

L’incontournable ouvrage de la rentrée : « High Performance MySQL 2nd Edition »

Mercredi 10 septembre 2008

Paru au début de l’été, cette seconde édition de « High Performance MySQL » rassemble en 700 pages un contenu de grande qualité dédié à notre base de données favorite.

Lecteurs de la première édition sachez que ce nouvel opus est une version totalement réécrite et considérablement enrichie. Parmi les auteurs on retrouve Jeremy Zawodny, grand apôtre de MySQL au sein de Yahoo Finance à l’époque, mais également la fine fleur du MySQL Performance Blog : Baron Schwartz (auteur du Maatkit), Peter Zaitsev et Vadim Tkachenko. Arjen Lentz et Derek J.Balling (également de la 1ère édition), complètent la dream team.

C’est Baron Schwartz qui semble avoir abattu le plus gros de l’ouvrage cette fois-ci, et à ceux que l’aventure tenterait, il nous fait partager sur son blog le making of de l’ouvrage. Par ailleurs, le billet : « êtes-vous sûr de lire la seconde édition« , appuye sur le fait que première et seconde édition partagent à peu de choses près la même couverture. Par conséquence, vérifiez la présence de la mention « 2nde édition » en diagonale en haut à droite de la couverture.

« High Performance MySQL » dispose d’un site dédié et notamment d’une rubrique téléchargement qui vous permettra de mettre la main sur le sommaire et le chapitre 4 consacré aux optimisations des requêtes.

Parmi les thèmes traités de façon très détaillée on trouve : Architecture de MySQL, Benchmarking/Profiling, indexation, tuning serveur, optimisations OS/hardware, montée en charge et haute disponibilité, backup, sécurité, réplication…

L’ouvrage est disponible chez Amazon par exemple mais il y’a plus malin si vous souhaitez vous procurer au moins deux exemplaires (pour votre département DBA par exemple) puisque le troisième est en effet gratuit si vous passez par le site d’O'Reilly.

Sachez enfin que « pébé », l’un de vos serviteurs ici-même et père de dbnewz, a participé à l’élaboration de cet ouvrage en tant que « technical reviewer ». Vous hésitez encore ? :)

Les certifications MySQL 5 : retour d’expérience

Vendredi 13 juin 2008

Une certification MySQL, et pourquoi pas ? Peut-être y pensez-vous…

Présentation

Si vous vous demandez à quoi elles peuvent bien servir, MySQL a dressé une liste pour vous :

Une certification est censée…
- Valider votre savoir-faire
- Diminuer les risques liés à la manipulation de MySQL
- Permettre d’offrir à son entreprise une plus grande qualité de service
- Augmenter la productivité
- Réduire les coûts de maintenance
- Offrir à son détenteur une augmentation de salaire ;)

Au-delà de cette version légèrement idéaliste/marketing et en évitant par ailleurs l’aspect souvent « polémique » concernant les certifications (les « pour », les « contre »), ne cédons pas à la tentation du troll et voyons ce que MySQL nous propose.

Lire le reste de cet article »

High Performance MySQL 2nd edition, pour bientôt… ou pas.

Jeudi 22 mai 2008

Deux mauvaises nouvelles de la part de O’reilly ce mois-ci :

- J’attendais mon édition de High Performance MySQL 2nd edition pour la semaine prochaine, le 1er juin d’après le mail récapitulatif de précommande reçu fin avril, mais c’est la date du 1er juillet qui apparaît désormais sur la fiche d’Amazon France… Le .com indique en revanche la date du 19 juin, un peu flou tout ça.
Ceux qui comme moi sont impatients de découvrir cette seconde édition (l’ancienne datait de 2004 et était déjà excellente) devront donc patienter encore un peu.
D’ici là libre à vous de la précommander ou d’attendre mon verdict… qui ne pèsera sans doute pas grand chose face à la qualité des auteurs présents : les experts du fameux « mysqlperformance blog » (Baron Schwartz, Peter Zaitsev, Vadim Tkachenko), mais aussi Jeremy Zawodny (de la précédente édition), Arjen Lentz… Du beau linge !

- La véritable mauvaise nouvelle est ailleurs, il s’agit bien sûr de la fermeture de la filiale française d’O'Reilly survenue au début du mois, un évènement pas si hors-sujet sur un blog comme celui-ci : qui n’a jamais eu entre les mains un de leurs ouvrages ?
En dépit de la qualité reconnue de ces derniers, la maison mère a fini par couper les subventions : les faits sont relatés sur immateriel.fr (billet du 9 mai), un blog tenu par l’ancienne équipe semble-t-il. Souhaitons leur tout le succès qu’ils méritent dans leurs prochaines aventures.

Sécurité PHP 5 et MySQL

Mardi 28 août 2007

Je viens de lire récemment Sécurité PHP 5 et MySQL, écrit par Damien Seguy et Philippe Gamache. J’ai évidement commencé par les parties que me tiennent à coeur, MySQL et en particulier:

  • Risques liés aux bases de données
  • Vulnérabilités des base de données
  • Mesures de sécurité pour MySQL

Je vous le conseille, vous trouverez un condensé de tout ce qu’il faut savoir à ce sujet pour protéger vos bases de données. Merci messieurs!
Je vais m’attaquer à la partie PHP :)

Com_admin_commands

Lundi 18 juin 2007

Si vous jouez un peu avec MySQL vous devez déjà connaitre la commande SHOW STATUS. Elle vous donne un snapshot de tous les compteurs interne de MySQL. Ces compteurs traquent des événements précis, par exemple:

mysql> show status like ‘Com_select’;
+—————+————+
| Variable_name | Value |
+—————+————+
| Com_select | 2293615720 |
+—————+————+
1 row in set (0.00 sec)

Voila le nombre de select qu’il y a eu sur ce server, 2.3 milliards… oups…

mysql> show status like ‘Questions’;
+—————+———–+
| Variable_name | Value |
+—————+———–+
| Questions | 533719732 |
+—————+———–+
1 row in set (0.00 sec)

‘Questions’ est le nombre de requêtes et commandes envoyées au serveur et devrait donc être logiquement la somme de toutes les « Com_* ».
Est ce un bug? 533 millions alors que rien qu’en select je suis déjà à 2.3 milliard?

En fait tous ces compteurs sont des entiers non signés. Donc sur des plateformes 32bit nous atteignons un maximum de 4.2 milliards avant que cela revienne à zéro. Donc tout est bien normal ici.

Maintenant la valeur qui est bizarre pour moi est ‘Com_admin_commands’.

mysql> show status like ‘Com_admin_commands’;
+——————–+————+
| Variable_name | Value |
+——————–+————+
| Com_admin_commands | 2731594764 |
+——————–+————+
1 row in set (0.00 sec)

2,7 milliards, ok mais à quoi correspond une commande admin? Je n’ai pas trouvé une seule ligne de documentation la dessus. Donc la seule solution est de regarder le code source (J’adore l’Open Source). C’est ainsi que l’on découvre que cela correspond à

  • COM_TABLE_DUMP: demande au serveur d’envoyer la définition des tables et les data au format RAW. C’est utilisé par la réplication si vous utilisez LOAD DATA FROM MASTER. C’est commande est obsolète, NE PLUS UTILISER.
  • COM_CHANGE_USER: dit au serveur que le client veut changer le user associé à la session – mysql_change_user( ).
  • COM_BINLOG_DUMP: demande au serveur d’envoyer un flux constent des binlogs à partir d’une certaine valeur – mysqlbinlog
  • COM_SHUTDOWN: commande l’arrêt du serveur – mysql_shutdown( )
  • COM_PING: ping pour MySQL – mysql_ping( )
  • COM_DEBUG: force un dump dans le log d’erreurs – mysql_dump_debug_info( )

Pour plus de détails la dessus, je vous conseille le nouveau livre de Sasha Pachev aux éditions O’Reilly, Understanding MySQL Internals qui est sorti en Avril 2007 et a été présenté pendant la conférence MySQL.

Donc revenons à cette base, nous avons 2.3 milliards de commandes admin, et cela semble être le plus vraisemblablement à cause de la fonction ping. Je me demande vraiment à quoi cela peut servir si ce n’est à garder des connections ouvertes pour rien.

  • à t, je ping tout est ok
  • à t+1, je perd ma connection
  • à t+2, j’execute ma commande et j’ai pas de connection

C’est une fonction faite pour les clients qui gardent les connections en attente pendant longtemps…ce qui est INUTILE avec MySQL. Au lieu de garder des connections dans le vide… FERMEZ les!