Arquitectura

El complemento de multiplexación de conexiones de mysqlnd está implementado como una extensión de PHP. Está estcrito en C y opera bajo el manto de PHP. Durante el arranque del intérprete de PHP, en la fase de inicialización de módulos del motor de PHP, se registra como un complemento de mysqlnd para reemplazar a los métodos en C específicos de mysqlnd.

La biblioteca mysqlnd utiliza los flujos de PHP para comunicarse con el servidor MySQL. A los flujos de PHP se acceden mediante la biblioteca mysqlnd a través de su módulo de red. El complemento de multiplexación de conexiones de mysqlnd actúa como delegado de los métodos del módulo de red de la biblioteca mysqlnd para controlar la apertura y el cierre de flujos de red.

Cuando se abre una conexión de usuario a MySQL utlizando las funciones de conexión apropiadas de mysqli, PDO_MYSQL o ext/mysql, el complemento busca en su agrupamiento de conexiones una conexión de red abierta. Si el agrupamiento contiene una conexión de red al host especificado por la función de conexión que use el método de transporte solicitado (TCP/IP, socket de dominio Unix, tuberías con nombre de Windows), la conexión del agrupamiento se vincula al gestor de usuario. De lo contrario, se abre una nueva conexión de red, se coloca en el agrupamiento y se asocia con el gestor de conexión de usuario. De esta manera, múltiples gestores de usuario pueden ser vinculados a la misma conexión de red.