Les différents moteurs de stockage de MySQL

Image non disponible


précédentsommairesuivant

VIII. Le moteur BlackHole

  • Licence : GPL
  • Version de MySQL : 4.1.11
  • Type : Autre
  • Domaines d'application :
    - Phase de développement
    - Optimisation
    - Administration de la structure SQL

VIII-A. Description

Voici l'un des derniers-nés des moteurs de stockage.

Le moteur BLACKHOLE est l'un des plus mystérieux. BLACKHOLE, comme en astrophysique, signifie "trou noir". Ce type de table accepte toutes requêtes d'insertion, mais ne renvoie aucun résultat. Il est néanmoins possible d'utiliser toutes les commandes SQL, mais il faut bien comprendre qu'il ne créera et ne modifiera aucune donnée.

Alors, à quoi peut bien servir ce moteur ? Il y a plusieurs utilisations possibles, dont certaines restent non négligeables.

VIII-B. Exemples d'application

VIII-B-1. Base de référence de performances

La première hypothèse consisterait à l'utiliser comme base de référence pour des tests de montée en charge.

Il faut pour cela, mesurer les performances avec le moteur BLACKHOLE sur le projet de base de données. Il faut ensuite effectuer les mêmes tests avec le moteur qui sera normalement utilisé en production (MyISAM, InnoDB etc.). En faisant une comparaison, il sera aisé d'obtenir un indice des performances de chaque moteur différent.

Ce fonctionnement peut être une bonne hypothèse d'utilisation.

VIII-B-2. Proxy MySQL

La première utilisation en production serait pour la réplication de données.

Il est possible de mettre un serveur BLACKHOLE comme maître, et d'autres serveurs avec d'autres moteurs comme esclaves. Le moteur BLACKHOLE en tant que maître, acceptera toutes les opérations d'écriture avec de très bonnes performances.

Même si les données ne sont pas stockées, elles seront disponibles dans le fichier de log binaire qui sera envoyé à chaque esclave. Le moteur BLACKHOLE ne sera là que pour relayer les modifications sans supporter les données. Il leur sert de PROXY.

L'avantage certain est qu'il n'y aura pas de problème de synchronisation et pas, ou très peu, de temps de latence entre maître et esclave.

Image non disponible

Utilisation du Proxy MySQL via le moteur BLACKHOLE.

VIII-B-3. Déclencheur de cache de données

Une deuxième hypothèse serait l'utilisation du moteur BLACKHOLE comme déclencheur de cache de données MySQL.

MySQL peut stocker les données en mémoire afin d'augmenter les performances et réduire les accès disque. Pour ce faire, il faut charger toutes les données d'une table en mémoire via la commande SELECT * FROM maTable et injecter ces données dans une table de type BLACKHOLE ayant la même structure.

Déclencheur de cache
Sélectionnez
INSERT INTO maTableBlackHole SELECT * FROM maTable

Ceci aura pour effet de déclencher le cache de MySQL lié à la lecture ou l'écriture d'une table, même si elle est sans fond.

Il est à noter tout de même, que cette utilisation mérite pas mal de tests pour être sûr du gain de performance réalisé. De plus, il faut bien configurer le cache de requêtes dans le fichier de configuration de MySQL.

Je vous invite à lire cet article : Étude pratique du cache de requêtes MySQL.

VIII-B-4. Recherche du coupable pour une opération gourmande

Lors d'une opération "gourmande" en CPU ou temps d'exécution, ce moteur peut s'avérer très utile. Il peut tester si votre script est en cause ou bien si le moteur choisi n'est pas adapté. Si lors du passage du script dans le moteur BLACKHOLE le temps d'exécution reste le même, alors le problème vient du script. Dans le cas contraire, cela vient peut-être d'un mauvais choix de moteur.

Ce moteur peut être très intéressant pour faire le choix d'un moteur approprié.

VIII-C. Fonctionnalités

Avantage
  • Ne présente que des avantages pour ce qui a été présenté.
Inconvénients
  • Peu de documentation.
  • Faible disponibilité chez les hébergeurs.

VIII-D. Conclusion

Autour de ce moteur dont l'utilisation ne paraît pas claire à première vue, nous avons pu voir des domaines d'application où il peut se révéler très utile (maintenance, optimisation et administration).

Au vu de la documentation inexistante et des utilisations multiples possibles, il y a fort à parier que ce moteur fera parler de lui en ouvrant d'autres domaines d'application.

Il est regrettable qu'il ne soit pas plus répandu chez les hébergeurs.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2008 Developpez.com. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.