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

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 “ …

[Lire plus]
FireWall pour PHP et MySQL

Tout le monde connaît les firewall, qui surveillent le contenu du trafic réseau, et imposent des limites à ce qui est possible de faire. Le même concept a été porté en PHP et MySQL.
Le firewall doit surveiller un contenu qui ne lui est pas destiné : il hésite constamment entre appliquer des filtres de sécurité draconienne, au détriment du contenu applicatif, et une politique plus souple, au détriment de la sécurité. PHP-IDS et GreenSQL font la même chose.
PHP-IDS ne modifie pas le contenu, mais émet un score sur la probabilité qu'une donnée entrante soit potentiellement dangereuse (XSS, injection SQL, injection PHP, etc). De même, Green SQLse place entre le serveur Web et MySQL, puis surveille les requêtes entrantes pour ne pas laisser passer les commandes administratives importantes (drop table), ou naïves (comparaisons de constantes).

  •   …
[Lire plus]
Profiler les requêtes SQL : 4 étapes

Récemment, Ghislain (qui gère les serveurs de nexen) m'a rappelé l'existence de SHOW FULL PROCESSLIST, qui est si pratique pour faire afficher la totalité des requêtes SQL en cours, et non pas les premiers caractères. Quand on veut profiler un serveur, et savoir quelles sont les requêtes qui sont si lentes, c'est vraiment essentiel.
Autrement, je recommande souvent 4 étapes pour profiler une requête SQL :


  1. L'exécuter manuellement et voir le temps qu'elle prend dans le client MySQL. C'est souvent par cela qu'on commence, vu qu'il faut bien déboguer fonctionnellement la requête avant de la profiler. A ce stade, si le temps de calcul dépasse 0.00s, c'est mauvais. EXPLAIN arrive alors à la rescousse.
  2. Après les tests à l'unité, il faut évaluer le comportement avec beaucoup de données. Généralement, un ordre de magnitude de plus que ce qui est attendu est une bonne …
[Lire plus]
Vidéo PHP et MySQL, édition 46

Voici les 5 dernières vidéos PHP et MySQL.



Ces vidéos sont …

[Lire plus]
Asbru Adds More Ready-to-Use Applications to CMS

Version 6.8 of the Asbru Web Content Management system for PHP, ASP and JSP/Java has been released.

Version 6.8 of the Asbru Web Content Management system is a major upgrade with focus on supplying a number of ready-to-use applications, which makes it easy for organizations to add a variety of functions to their websites. Version 6.8 also adds Landing Page Optimization (LPO) capabilities.

Stores and Branches Directory
Among the new applications in the latest version 6.8 is a Stores and Branches Directory application. This application enables non-technical users to add searchable lists of stores and branches to their website in just three steps. When a website visitor selects a store a map and details about the store is displayed.

Careers and Jobs Directory
The new version also includes a Careers and Jobs Directory, that when added to a website enables visitors to search for jobs and submit …

[Lire plus]
blog reaction
[Lire plus]
Rename database s'en vient et s'en va...

Une commande 'RENAME DATABASE' a été introduite en MySQL 5.1.7, puis retirée en 5.1.23, pour des raisons de 'danger'. Vadim s'interroge sur les raisons de ces allers et venues : est-ce pour pouvoir publier la 5.1 GA qu'une fonctionnalité utile (et peut être moins dangereuse que DROP DATABASE) a été retirée?
C'est un choix à faire pour chaque version : soit on souhaite des fonctionnalités finalisées, en sacrifiant le calendrier, ou bien des versions à l'heure, sans être finies. J'ai la sensation que cela n'arrive pas qu'à MySQL...

Jointures de fichiers

Toutes les données ne sont pas destinées à être en base : et pour les fichiers, il existe une commande join en ligne de commande. C'est une commande Posix, qui permet de faire des jointures entre des fichiers.

Ca bouge chez Zend

Zend Technologies vient de licencier 10 personnes de son service de R&D. TechCrunch, qui rapporte le fait, estime que c'est dans un objectif de vente de la compagnie que ce licenciement aurait lieu : il permet en effet de remettre les comptes à flot.
Oracle, Microsoft et IBM seraient possiblement intéressés. En 2006, Oracle aurait émis une offre entre 100 et 200 millions, sans prise d'effet. Le rachat de MySQL par Sun, en début d'année, va sûrement peser dans la situation, aussi bien au niveau des prix que de la valeur stratégique de Zend.
A suivre...

Choisir l?implémentation de ses index : ?B-TREE? ou ?HASH?, quelles différences ?

Préambule technique à une série de futurs articles, je ne vous en dis pas plus, l’épisode du jour a pour point de départ un moteur de stockage MySQL avec à la clé la possibilité, ou pas, de définir l’implémentation de ses index : B-TREE ou HASH.

Ce choix n’est en effet pas toujours disponible, c’est même plutôt rare puisque seul le moteur de stockage MEMORY vous permet depuis la version 4.1 de MySQL, d’effectuer ce choix. Nous ne parlerons pas ici du MySQL Cluster et de son moteur NDB qui sera abordé spécifiquement dans un autre épisode.

Pourquoi alors se soucier de ce type d’implémentation si seul le moteur MEMORY offre la possibilité de choisir ?
- MyISAM et InnoDB pourraient à l’avenir proposer ce choix.
- Afin de comprendre plus finement comment fonctionnent les index que vous utilisez tous les jours, se pencher sur la façon dont ils sont implémentés permet de mieux appréhender …

[Lire plus]