[MySQL][PHP][SGBD][Web] Le SELECT de la semaine

Les informations collectées cette semaine sur les listes de développement de MySQL sont les suivantes :

  • Sortie du connecteur .Net 5.2.3 : Correction de bogues et optimisations.
  • MySQL fournit une documentation PHP : Un moyen de réunir au même endroit le plus d'informations possible.

» Lire la suite!

Billet original publié sur les blogs de developpez.com...

SQL dynamique et recherche dans toute une base

Tout d'abord, un rappel : on peut générer des requêtes SQL dans MySQL, et les exécuter, un peu comme le fait eval() en PHP. Voici un exemple qui vous montre une requête SQL dynamique.

 
 
mysql> set @sql = "select 'bonjour';";
 
Query OK, 0 rows affected (1.27 sec)
 
 
 
mysql> PREPARE insertStmt FROM @sql;
 
Query OK, 0 rows affected (0.92 sec)
 
Statement prepared
 
 
 
mysql> EXECUTE insertStmt;
 
+---------+
 
| bonjour |
 
+---------+
 
| bonjour | 
 
+---------+
 
1 row in set (0.00 sec)
 


Notez bien que cette fonctionnalité peut être dévastatrice en cas d'injection SQL. Les performances ne sont pas exceptionnelles (la compilation SQL peut être assez lente), mais sera sûrement indolore pour une utilisation interactive.
La variable @sql peut être constituée de n'importe quelle source : ici c'est une chaîne littérale, mais cela peut être le contenu d'une table, une liste de table, ou autre …

[Lire plus]
[MySQL][SGBD] Formations MySQL : Préparez-vous pour MySQL 5.1

Dans quelques mois, MySQL 5.1 sera déclarée version GA.

Apprenez dès maintenant à tirer parti du partitionnement, de la réplication par ligne et toutes les nouvelles fonctionnalités de cette nouvelle version de la base de données open source la plus populaire au monde.

» Lire la suite!

Billet original publié sur les blogs de developpez.com...

[MySQL][OpenSource][PHP][SGBD][Web] Améliorer efficacement la sécurité de votre base de données : MySQL-Proxy

L'injection SQL est un fléau qui guette les développeurs d'applications, et particulièrement les applications web (à cause de leur exposition aux attaques).
Les failles provoquant ces injections sont difficiles à combler de manière définitive puisqu'elles vont dépendre de l'application et des technologies employées.
Il serait très utile de pouvoir régler de manière définitive ces injections côté SGBD.
Une solution commence à voir le jour, elle s'appelle MySQL-Proxy.

» Lire la suite!

Billet original publié sur les blogs de developpez.com...

Générer un jeu de données : shell, mysqlslap, et procédure stockée

Le prochain article de notre série consacrée aux index MySQL approche et j’ai besoin pour ce prochain épisode de générer une table de test de la forme suivante :

CREATE TABLE `t` (
`id` mediumint(8) unsigned NOT NULL auto_increment,
`date` timestamp NOT NULL,
`flag` tinyint(4) NOT NULL default '0',
PRIMARY KEY  (`id`),
KEY `flag` (`flag`)
) ENGINE=MyISAM;


La structure est définie, reste à alimenter la table, disons 1 million d’enregistrements.

La valeur du champ “flag” est importante pour nos tests ultérieurs, sa valeur doit pour le moment être comprise entre 0 et 1, le tout à peu près uniformément distribué.

La requête sera la suivante :

INSERT INTO test.t (flag) VALUES (ROUND(RAND()));

Il faut maintenant …

[Lire plus]
Générer un jeu de données pour MySQL

Le Shell, mysqlslap et une procédure stockée sont utilisée dans ce tutoriel de Arnaud pour remplir une table de données aléatoires et préparer des tests de charge.

Drizzle ou petite pluie…

Les grandes vacances ne sont pas synonyme de détente pour tout le monde. Je suis en effet pas mal pris et je voyage beaucoup en ce moment. J’écris ce post de Taipei ou je profite de cette fin de week pour me pauser. Je me demande quelle est l’opinion de la blogosphère française au sujet de Drizzle.

Pour les anglophobes, Drizzle est une version "light" de MySQL basée sur un "fork" de la version 6.0 lancé par Brian Aker. Un fork pour faire simple, on prend une copie des sources à un instant t et on commence à developper dans son coin. Jusqu’à présent, je connaissais celle de mes amis de Proven Scaling et celle de Monty lui même (j’en profite pour saluer Guilhem qui fait parti de ce projet).

Maintenant pourquoi le nom Drizzle? un petit tour sur wikipedia, Drizzle est une petite pluie… …

[Lire plus]
NetBeans 6.5 beta pour PHP

La nouvelle version de NetBeans 6.5 beta de Sun Microsystems ouvre les portes de son IDE au langage PHP.
Les possibilités qui sont proposées permettent d'effectuer les inclusions, de générer du code avec une base de donnée MySQL.
L'éditeur a poussé ses tests de son nouvel outil IDE avec de nombreux serveurs d'application comme par exemple Apache Tomcat et bien d'autres.
Bien sur cet outil se trouve disponible sur tous les systèmes d'exploitations (Linux, Mac, Windows)

Alertes sécurité des applications PHP et MySQL, édition 215


PHP et MySQL ne font l'objet d'aucune alerte de sécurité dans leurs versions courantes :
PHP 5.2.6 et 4.4.9; MySQL 5.0.67 (communauté) , 5.1.26 et 6.0.5.
Les mises à jour sont recommandées vers ces versions.



6 alertes de sécurité ont été émises cette semaine, concernant des applications suivantes :
Drupal, Gallery, Joomla, PostNuke, WordPress et e107


[Lire plus]
Raid, Cache et BBU

Je vous parlais récemment de Sysbench, aujourd’hui je vais vous montrer comment il m’a aidé à résoudre un problème. Tout d’abord, je dois vous expliquer le problème initial. Je reçois un nouveau serveur qui sera le Master de notre environnement de pré-production, une bête dans son genre: Dual Quad Xeon 2Ghz, 32Go de RAM, 4 disques scsi montés en RAID5. Après avoir installé un backup, je lance un script qui fait des modifications massives sur les données dans le but de mesurer à quel point le nouveau serveur est performant.

Surprise ! Le script était excessivement plus lent que d’habitude. J’ai fouillé un peu et j’ai constaté que le IOwait était étrangement élevé. Après quelques recherches infructueuses sur google pour des problèmes de MySQL avec un IOwait élevé, je me suis connecté sur IRC, …

[Lire plus]