10bet网址
连接器和API手册
下载本手册

7.6.9 MySQL本机驱动程序插件API

版权所有1997-2021 PHP文档组。10bet官方网站

MySQL本机驱动程序插件API是MySQL本机驱动程序或mysqlnd.mysqlnd.插件在PHP应用程序和MySQL Server之间的图层中运行。这与MySQL代理相当。MySQL代理在任何MySQL客户端应用程序之间的图层上运行,例如,PHP应用程序和MySQL Server。mysqlnd.插件可以承接典型的MySQL代理任务,如负载平衡,监控和性能优化。由于架构和位置不同,mysqlnd.插件没有MySQL代理的缺点。例如,对于插件,没有单点故障,没有专用的代理服务器部署,也没有新的编程语言来学习(Lua)。

一种mysqlnd.插件可以被认为是一个扩展mysqlnd.。插件可以拦截大多数mysqlnd.职能。这mysqlnd.PHP MySQL扩展函数调用函数ext / mysql.ext / mysqli., 和pdo_mysql.。结果,可以实现mysqlnd.插件拦截到客户端应用程序中对这些扩展的所有呼叫。

内部的mysqlnd.函数调用也可以截获或替换。操纵没有限制mysqlnd.内部功能表。有可能设置一些东西,以便在某些时候mysqlnd.使用的函数调用mysqlnd.,呼叫被引导到适当的功能mysqlnd.插入。操纵能力mysqlnd.内部功能表以这种方式允许最大的插件灵活性。

mysqlnd.插件实际上是PHP扩展,用C中写入,它使用mysqlnd.插件API(内置于MySQL本机驱动程序中,mysqlnd.)。插件可以为PHP应用程序透明100%。不需要应用程序更改,因为插件在不同的层上运行。这mysqlnd.插件可以被认为是在下层的层中操作mysqlnd.

以下列表代表了一些可能的应用程序mysqlnd.插件。

  • 负载均衡

    • 读/写拆分。这一示例是PECL / MySQLND_MS(主站)扩展名。此扩展拆分为复制设置划分读/写查询。

    • 故障转移

    • 圆罗宾,最少装载

  • 监测

    • 查询日志记录

    • 查询分析

    • 查询审核。这是PECL / MySQLND_SIP(SQL注入保护)扩展。此扩展验证查询并仅执行根据规则集允许的查询。

  • 表现

    • 缓存。这是PECL / MySQLND_QC(查询缓存)扩展名。

    • 节约

    • 分片。这是PECL / MySQLND_MC(Multi Connect)扩展名。使用SELECT ...限制PART_1,将尝试将SELECT语句拆分为N部分,选择“限制”PART_N。它将查询发送到Distinct MySQL服务器,并在客户端上合并结果。

MySQL本机驱动程序插件可用

已有许多MySQLND插件已可用。这些包括:

  • pecl / mysqlnd_mc.- 多连接插件。

  • pecl / mysqlnd_ms.- 主从插件。

  • pecl / mysqlnd_qc.- 查询缓存插件。

  • pecl / mysqlnd_pscache.- 准备的声明处理缓存插件。

  • pecl / mysqlnd_sip.- SQL注入保护插件。

  • pecl / mysqlnd_uh.- 用户处理程序插件。