PHP 8.5.0 Alpha 2 available for testing

API del plugin del controlador nativo MySQL

Tabla de contenidos

La API del plugin del controlador nativo MySQL es una funcionalidad del controlador nativo MySQL, o mysqlnd. El plugin Mysqlnd opera en la capa entre las aplicaciones PHP y el servidor MySQL. Es comparable a un proxy MySQL. Un proxy MySQL opera en una capa entre todas las aplicaciones cliente MySQL, por ejemplo, una aplicación PHP y un servidor MySQL. El plugin Mysqlnd puede realizar tareas típicas de proxy MySQL como el equilibrio de carga, así como el seguimiento y la optimización de las prestaciones. Debido a una arquitectura y una localización diferente, el plugin mysqlnd no tiene todos los inconvenientes de un proxy MySQL. Por ejemplo, con el plugin, no hay un único punto de fallo, no hay un servidor proxy dedicado que desplegar, y no hay un nuevo lenguaje que aprender (Lua).

Un plugin mysqlnd puede ejecutarse como una extensión a mysqlnd. Un plugin puede interceptar la mayoría de las funciones mysqlnd. Las funciones mysqlnd son llamadas por la extensión PHP MySQL como ext/mysql, ext/mysqli, y PDO_MYSQL. Como resultado, es posible para un plugin mysqlnd interceptar todas las llamadas realizadas por estas extensiones desde una aplicación cliente.

Las llamadas a las funciones internas mysqlnd pueden también ser interceptadas o reemplazadas. No hay ninguna restricción sobre la manipulación de las tablas de funciones internas mysqlnd. Es posible definir acciones para que cuando ciertas funciones mysqlnd sean llamadas por la extensión que utiliza mysqlnd, la llamada sea redirigida hacia la función apropiada del plugin mysqlnd. La posibilidad de manipular las tablas de funciones internas mysqlnd de este modo permite un máximo de flexibilidad.

El plugin Mysqlnd es, en realidad, una extensión PHP, escrita en C, que utiliza la API del plugin mysqlnd (que está compilada en el controlador nativo MySQL, mysqlnd). El plugin puede ser 100% transparente para las aplicaciones PHP. No se requiere ninguna modificación a las aplicaciones ya que el plugin opera en una capa diferente. El plugin mysqlnd puede ser utilizado en una capa por debajo de mysqlnd.

La lista siguiente representa algunas aplicaciones posibles del plugin mysqlnd.

  • El equilibrio de carga.

    • Separación de lecturas y escrituras. Un ejemplo de esta funcionalidad es la extensión PECL/mysqlnd_ms (Maestro/esclavo). Esta extensión separa las consultas de lectura y escritura para una configuración de replicación.

    • Conmutación por error

    • Round-Robin, el menos cargado

  • Supervisión

    • Registro de consultas

    • Análisis de consultas

    • Auditoría de consultas. Un ejemplo de esto es la extensión PECL/mysqlnd_sip (Protección contra Inyección SQL). Esta extensión inspecciona las consultas y ejecuta únicamente aquellas que son permitidas siguiendo conjuntos de reglas.

  • Rendimiento

    • La caché. Un ejemplo de esto es la extensión PECL/mysqlnd_qc (Query Cache).

    • Limitación

    • Fragmentación. Un ejemplo de esto es la extensión PECL/mysqlnd_mc (Multi Connect). Esta extensión intenta separar una consulta SELECT en n partes, utilizando consultas del tipo SELECT ... LIMIT part_1, SELECT LIMIT part_n. La extensión envía las consultas a servidores MySQL distintos y luego fusiona el resultado hacia el cliente.

Plugins del controlador nativo MySQL disponibles

Ya hay varios plugins mysqlnd disponibles.

  • PECL/mysqlnd_mc - Plugin Multi Conexión.

  • PECL/mysqlnd_ms - Plugin Maestro Esclavo.

  • PECL/mysqlnd_qc - Plugin de caché de consultas.

  • PECL/mysqlnd_pscache - Plugin de caché de gestor de consultas preparadas.

  • PECL/mysqlnd_sip - Plugin que permite la protección contra inyecciones SQL.

  • PECL/mysqlnd_uh - Plugin de gestor de usuarios.

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top