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.
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.
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.
Le raccourci mysqlnd_mux signifie mysqlnd connection multiplexing plugin.