API du plugin du driver natif MySQL

Sommaire

L'API du plugin du driver natif MySQL est une fonctionnalité du driver natif MySQL, ou mysqlnd. Le plugin Mysqlnd opÚre sur la couche entre les applications PHP et le serveur MySQL. Il est comparable à un proxy MySQL. Un proxy MySQL opÚre sur une couche entre toutes les applications clientes MySQL, par exemple, une application PHP et un serveur MySQL. Le plugin Mysqlnd peut entreprendre des tùches typiques de proxy MySQL comme l'équilibrage de charge, ainsi que le suivi et l'optimisation des performances. En raison d'une architecture et d'une localisation différente, le plugin mysqlnd n'a pas tous les inconvénients d'un proxy MySQL. Par exemple, avec le plugin, il n'y a pas qu'un seul point d'échec, pas de serveur de proxy dédié à déployer, et pas de nouveau langage à apprendre (Lua).

Un plugin mysqlnd peut ĂȘtre exĂ©cutĂ© comme une extension Ă  mysqlnd. Un plugin peut intercepter la majoritĂ© des fonctions mysqlnd. Les fonctions mysqlnd sont appelĂ©es par l'extension PHP MySQL comme ext/mysql, ext/mysqli, et PDO_MYSQL. Comme rĂ©sultat, il est possible pour un plugin mysqlnd d'intercepter tous les appels effectuĂ©s par ces extensions depuis une application cliente.

Les appels aux fonctions internes mysqlnd peuvent Ă©galement ĂȘtre interceptĂ©s ou remplacĂ©s. Il n'y a aucune restriction sur la manipulation des tables de fonctions internes mysqlnd. Il est possible de dĂ©finir des actions pour faire que lorsque certaines fonctions mysqlnd sont appelĂ©es par l'extension qui utilise mysqlnd, l'appel est redirigĂ© vers la fonction appropriĂ©e du plugin mysqlnd. La possibilitĂ© de manipuler les tables de fonctions internes mysqlnd dans ce sens permet un maximum de flexibilitĂ©.

Le plugin Mysqlnd est en fait, une extension PHP, Ă©crite en C, qui utilise l'API du plugin mysqlnd (qui est compilĂ© dans le driver natif MySQL, mysqlnd). Le plugin peut ĂȘtre Ă  100% transparent pour les applications PHP. Aucune modification aux applications n'est nĂ©cessaire car le plugin opĂšre sur une couche diffĂ©rente. Le plugin mysqlnd peut ĂȘtre utilisĂ© dans une couche en dessous de mysqlnd.

La liste suivante représente quelques applications possibles du plugin mysqlnd.

  • L'Ă©quilibrage de charge.
    • SĂ©paration des lectures et des Ă©critures. Un exemple de cette fonctionnalitĂ© est l'extension PECL/mysqlnd_ms (MaĂźtre/esclave). Cette extension sĂ©pare les requĂȘtes de lecture et d'Ă©criture pour une configuration de rĂ©plication.
    • Basculement
    • Round-Robin, le moins chargĂ©
  • Surveillance
    • Journalisation des requĂȘtes
    • Analyse de requĂȘtes
    • Audit de requĂȘtes. Un exemple de ceci est l'extension PECL/mysqlnd_sip (SQL Injection Protection). Cette extension inspecte les requĂȘtes et exĂ©cute uniquement celles qui sont autorisĂ©es suivant des ensembles de rĂšgles.
  • Performance
    • La mise en cache. Un exemple de ceci est l'extension PECL/mysqlnd_qc (Query Cache).
    • Étranglement
    • Fragmentation. Un exemple de ceci est l'extension PECL/mysqlnd_mc (Multi Connect). Cette extension tente de sĂ©parer une requĂȘte SELECT en n parties, en utilisant des requĂȘtes du type SELECT ... LIMIT part_1, SELECT LIMIT part_n. L'extension envoie les requĂȘtes Ă  des serveurs MySQL distincts et fusionne ensuite le rĂ©sultat Ă  destination du client.

Plugins du driver natif MySQL disponibles

Il y a déjà plusieurs plugins mysqlnd de disponibles.

  • PECL/mysqlnd_mc -Plugin Multi Connexion.
  • PECL/mysqlnd_ms - Plugin MaĂźtre Esclave.
  • PECL/mysqlnd_qc - Plugin de mise en cache de requĂȘtes.
  • PECL/mysqlnd_pscache - Plugin de mise en cache de gestionnaire de requĂȘtes prĂ©parĂ©es.
  • PECL/mysqlnd_sip - Plugin permettant la protection contre les injections SQL.
  • PECL/mysqlnd_uh - Plugin de gestionnaire d'utilisateurs.
add a note

User Contributed Notes

There are no user contributed notes for this page.