Introduction
Le plugin de multiplexage mysqlnd (mysqlnd_mux) multiplexe les connexions MySQL établies par toutes les extensions PHP MySQL qui utilisent le driver natif MySQL (mysqlnd) for PHP.
Le driver natif MySQL pour PHP fournit une API C interne pour les plugins, comme le plugin de multiplexage de connexions, qui peut étendre les fonctionalités de mysqlnd. Reportez-vous à la section sur mysqlnd pour plus de détails sur ces bénéfices par rapport à la bibliothèque client MySQL libmysqlclient.
Les plugins Mysqlnd comme mysqlnd_mux opèrent, pour la plupart, de façon transparente d'une point de vue utilisateur. Le plugin de multiplexage de connexions supporte toutes les applications PHP, et toutes les extensions MySQL de PHP. Il ne modifie en rien les APIs existantes. Aussi, il peut être utilisé facilement avec les applications PHP existantes.
Note:
Ceci est une preuve de concept. Toutes les fonctionalités sont à un stade précoce. Toutes les requêtes ne sont pas encore gérées par le plugin. Aussi, il ne peut pas être utilisé tel que pour le moment.
Veuillez ne pas utiliser cette version en environnement de production.
Fonctionalités clés
Les fonctionalités clés de mysqlnd_mux sont les suivantes :
-
Transparent, et donc, facile à utiliser :
-
Supporte toutes les extensions PHP MySQL.
-
Peu, voire aucune modification de l'application n'est nécessaire, suivant le scénario d'utilisation adopté.
-
-
Réduit la charge serveur et les latences de connexion :
-
Ouvre moins de connexions au serveur MySQL.
-
Moins de connexions à MySQL signifie moins de travail pour le serveur MySQL. Dans un environnement client-serveur, il est plus souvent difficile de tuner le serveur que le client. Le multiplexage va vous aider avec une optimisation horizontale.
-
La mise en file d'attente fait gagner du temps dans le durée de la connexion.
-
Le ultiplexage de connexions : les gestionnaires de plusieurs utilisateurs partagent la même connexion réseau. Une fois ouverte, une connexion réseau est mise en cache et partagée par plusieurs gestionnaires utilisateurs. Il y a une relation 1:n entre le connexion réseau interne et les gestionnaires de connexions utilisateurs.
-
Les connexions persistentes : une connexion réseau est conservée ouverte à la fin de la requête web, si le modèle de déploiement PHP l'autorise. Aussi, les requêtes web suivantes peuvent ré-utiliser une connexion ouverte précédemment. Tout comme les autres ressources, les connexions réseau sont liées au scope du processus. Aussi, elles peuvent être réutilisées pour toutes les requêtes web servies par un processus.
-
Limitations
La preuve de concept ne supporte pas les requêtes non mises en mémoire tampon, les requêtes préparées, et les requêtes asynchrones.
La file d'attente de connexions utilise une combinaison de la méthode de transport et du nom d'hôte comme clé. Aussi, deux connexions au même hôte, utilisant la même méthode de transport (TCP/IP, Unix socket, pipe nommé Windows) seront liées à la même connexion de la file d'attente, y compris si le nom de l'utilisateur et le mot de passe diffèrent. Soyez attentif aux implications possible en terme de sécurité.
La preuve de concept est une transaction agnostique ; aucun rapport avec les transactions SQL.
Note:
Les applications doivent être attentives aux conséquences liées aux partages de connexions.
Version en cache
23/11/2024 16:07:11 Cette version de la page est en cache (à la date du 23/11/2024 16:07:11) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-intro.mysqlnd-mux.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.