Utiliser XML avec MySQL 5.1 (part 3/5)

août 10, 2009
Tags: ,

Interroger un flux XML avec Xpath

L’emploi de XML ne présenterait pas beaucoup d’intérêt sans la possibilité de pouvoir interroger sa structure pour accéder à une information particulière : le langage XPath répond à cette attente et est (en partie du moins) aujourd’hui intégré à MySQL. Mais avant de voir comment utiliser XPath à travers MySQL, il est nécessaire de se pencher sur la syntaxe de ses expressions, dont la construction la plus importante est sans conteste le chemin de localisation (location path).

Le chemin de localisation

De manière similaire à la navigation au sein d’un système de fichiers, un chemin de localisation se compose d’une succession d’étapes, séparées les unes des autres par un /. La description d’un chemin peut se faire de façon absolue ou relative, auquel cas un nœud contexte est utilisé afin de déterminer à partir de quel endroit doit s’effectuer la recherche.

Chaque étape d’un chemin de localisation peut se diviser en trois parties (axe de recherche, test du nœud et ensemble de prédicats), réunies sous la forme suivante :

Axis::Node-Test[Predicate1][Predicate2]…

L’axe de recherche (Axis)

L’axe de recherche permet de spécifier dans quel sens orienter la sélection des nœuds que l’on veut récupérer par rapport au nœud courant. Ainsi, il est possible de choisir de chercher dans l’ensemble des nœuds des descendants, plutôt que de se limiter (par défaut) aux nœuds directement enfants.

Commentaires fermés sur Utiliser XML avec MySQL 5.1 (part 3/5)

Benchmark MySQL 5.4

août 3, 2009

Dimitri KRAVTCHUK nous démontre avec une batterie de tests les évolutions en matière de performance apportées par MySQL 5.4:

* Huge performance improvement on InnoDB engine!
* MySQL 5.4.0 /Perf Version seems to be the most performant InnoDB implementation for the moment! (only except on the Read-Only workload @8cores where InnoDB plugin-1.0.3 is leading!)
* MySQL is outperforming PostgreSQL on my tests now!
* Regarding scalability, get a look at 8 vs 16 cores graphs, and you’ll see it’s the big step forward – no performance degradation on 16 cores is a very positive sign! and there is only 3 months distance between tests!
* LOCK_open needs a fix ASAP! 🙂
* Analyzing my test results, it’s too early to say InnoDB is scaling up to 16 cores, but the test results on 16 cores are already outperforming 8 cores, and I’m absolutely sure now – very quickly it’ll perform even better! so see you soon! :-))

3

Utiliser XML avec MySQL 5.1 (part 2/5)

juillet 29, 2009
Tags: ,

Insérer du XML dans MySQL

Un fichier XML, n’est finalement qu’un fichier contenant du texte et insérer du texte dans un SGBDR, est loin d’être la chose la plus difficile. Une simple requête INSERT fait l’affaire. Cela nous donne quelque chose comme ceci :

INSERT INTO ma_table (champ_texte) VALUES (‘…’)

Commentaires fermés sur Utiliser XML avec MySQL 5.1 (part 2/5)

Utiliser XML avec MySQL 5.1 (part 1/5)

juillet 17, 2009
Tags: ,

MySQL avec son modèle relationnel et XML avec son approche hiérarchique ont en commun la vocation d’organiser et de structurer des ensembles de données.

En regardant de plus près, ces technologies peuvent offrir des solutions complémentaires :

*

MySQL s’adapte à merveille à la gestion de systèmes d’informations éventuellement lourds et complexes,
*

XML a su devenir un langage universel permettant aux applications de communiquer et d’échanger des informations.

Leur complémentarité apparaît alors évidente : XML rend possible l’exploitation et le partage des informations contenues dans MySQL par des applications distantes.

2

Le programmateur d’événements ( Event Scheduler ) (part 6/6)

juin 29, 2009

Limitations et restrictions

Certaines commandes MySQL ne sont pas permises dans un événement.

Verrouiller une table est interdit: LOCK TABLES, UNLOCK TABLES.

Il n’est malheureusement pas possible de charger des données avec la commande LOAD DATA INFILE.

Les requêtes préparées (PREPARED STATEMENT) ne peuvent être créées dans un événement.

Commentaires fermés sur Le programmateur d’événements ( Event Scheduler ) (part 6/6)

Le programmateur d’événements ( Event Scheduler ) (part 5/6)

juin 24, 2009

Appel d’une procédure stockée

Il est possible d’appeler des procédures stockées dans un événement.

mysql> CREATE EVENT `_event`.`appel_ps`
ON SCHEDULE AT CURRENT_TIMESTAMP
DO
/*Appel de la procédure stockée*/
CALL pro_stock.insert_profil(‘Olivier’, ‘DASINI’, ‘Orange’);

2

Forum PHP 2009 – Appel à conférenciers !

juin 18, 2009

Le Forum PHP 2009 accueillera comme partenaire aux cotés de l’AFUP (Association Française des Utilisateurs PHP) l’association LeMug.fr (MySQL User Group).

Cet événement va se dérouler les 12 et 13 novembre 2009 à la cité des sciences à Paris.
Les appels à conférenciers et les pré-inscriptions sont ouvertes jusqu’à la fin du mois de juin.

Si vous désirez vous y rendre, vous pouvez vous inscrire

Pour toutes les informations http://afup.org/pages/forumphp2009/

P.S. Je peux déjà vous annoncer (enfin on va faire durer un peu le suspense) la présence d’une immense MySQL star… 😉

Commentaires fermés sur Forum PHP 2009 – Appel à conférenciers !

Le programmateur d’événements ( Event Scheduler ) (part 4/6)

juin 16, 2009

Insertions de données dans une table, toutes les 30 secondes

mysql> SELECT * FROM _event.insert_event ;
mysql> DELIMITER €€
mysql> CREATE EVENT `_event`.`second_event`
ON SCHEDULE EVERY 30 SECOND
DO
BEGIN
/*selectionne la val maximale de la colonne fois. Si elle vaut NULL alors retourne la valeur 0 dans la variable @fois*/
SELECT if(max(fois),max(fois)+1,1) INTO @fois FROM _event.insert_event;
/*Insertion des données dans la table*/
INSERT INTO _event.insert_event (moment, fois, action) VALUES (now(), @fois, concat(‘Execution ‘, @fois,  » de l’event »));
END €€
mysql> DELIMITER ;

Commentaires fermés sur Le programmateur d’événements ( Event Scheduler ) (part 4/6)

Le programmateur d’événements ( Event Scheduler ) (part 3/6)

mai 6, 2009

Gérer les évènements

MySQL propose plusieurs méthodes pour visualiser les évènements. La méthode la plus pratique consiste à aller chercher l’information dans la table event de la base de données des méta-données information_schema:
mysql> SELECT * FROM information_schema.EVENTS;

Commentaires fermés sur Le programmateur d’événements ( Event Scheduler ) (part 3/6)

Le programmateur d’événements ( Event Scheduler ) (part 2/6)

avril 30, 2009

Créer un événement

Pour créer notre premier événement, un coup d’oeil dans la documentation de MySQL nous donne les informations suivantes:

3