août 10, 2009
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.
J’aime ça :
J’aime chargement…
Filed under:
MySQL by Olivier DASINI
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! :-))
J’aime ça :
J’aime chargement…
juillet 29, 2009
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 (‘…’)
J’aime ça :
J’aime chargement…
Filed under:
MySQL by Olivier DASINI
juillet 17, 2009
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.
J’aime ça :
J’aime chargement…
Filed under:
MySQL by Olivier DASINI
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.
J’aime ça :
J’aime chargement…
Filed under:
MySQL by Olivier DASINI
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’);
J’aime ça :
J’aime chargement…
Filed under:
MySQL by Olivier DASINI
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… 😉
J’aime ça :
J’aime chargement…
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 ;
J’aime ça :
J’aime chargement…
Filed under:
MySQL by Olivier DASINI
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;
J’aime ça :
J’aime chargement…
Filed under:
MySQL by Olivier DASINI
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:
J’aime ça :
J’aime chargement…
Filed under:
MySQL by Olivier DASINI