概述

它不是什么

虽然 MySQL Native Driver 被编写为一个 PHP 扩展,但重要的是要注意它没有为 PHP 程序员提供新的 API。MySQL 数据库连接的程序员 API 由 MySQL 扩展、mysqli 和 PDO MYSQL 提供。这些扩展现在可以使用 MySQL Native Driver 的服务来与 MySQL 服务器通信。因此,你不应该将 MySQL Native Driver 视为 API。

为什么要使用它?

与使用 MySQL Client Library 相比,使用 MySQL Native Driver 提供了许多优势。

旧的 MySQL Client Library 由 MySQL AB(现为 Oracle Corporation)编写,因此在 MySQL 许可证下发布。这最终导致 MySQL 支持在 PHP 中默认情况下被禁用。然而,MySQL Native Driver 是作为 PHP 项目的一部分开发的,因此在 PHP 许可证下发布。这消除了过去一直存在的问题的许可问题。

此外,在过去,你需要针对 MySQL Client Library 的副本构建 MySQL 数据库扩展。这通常意味着你需要在构建 PHP 源代码的机器上安装 MySQL。此外,当你的 PHP 应用程序运行时,MySQL 数据库扩展会在运行时调用 MySQL Client 库文件,因此该文件需要安装在你的系统上。使用 MySQL Native Driver,情况不再如此,因为它包含在标准发行版中。因此,你不需要安装 MySQL 才能构建 PHP 或运行 PHP 数据库应用程序。

由于 MySQL Native Driver 是作为 PHP 扩展编写的,因此它与 PHP 的工作方式紧密耦合。这导致了效率的提高,尤其是在内存使用方面,因为驱动程序使用 PHP 内存管理系统。它还支持 PHP 内存限制。使用 MySQL Native Driver 导致的性能与使用 MySQL Client Library 相当甚至更好,它始终确保最有效地使用内存。内存效率的一个例子是,当使用 MySQL Client Library 时,每行在内存中存储两次,而使用 MySQL Native Driver 时,每行只在内存中存储一次。

注意: 报告内存使用情况

由于 MySQL Native Driver 使用 PHP 内存管理系统,因此可以使用 memory_get_usage() 来跟踪其内存使用情况。这在 libmysqlclient 中是不可能的,因为它使用 C 函数 malloc() 而不是。

特殊功能

MySQL Native Driver 还提供一些使用 MySQL Client Library 时 MySQL 数据库扩展无法提供的特殊功能。这些特殊功能列在下面

性能统计工具可以证明在识别性能瓶颈方面非常有用。

MySQL Native Driver 还允许在与 mysqli 扩展一起使用时使用持久连接。

SSL 支持

MySQL Native Driver 支持 SSL。

压缩协议支持

MySQL Native Driver 支持压缩的客户端服务器协议。扩展 ext/mysqli(如果配置为使用 MySQL Native Driver)也可以利用此功能。请注意,PDO_MYSQL 在与 mysqlnd 一起使用时 *不* 支持压缩。

命名管道支持

命名管道可用于在 Windows 环境中进行连接。

添加说明

用户贡献说明

此页面没有用户贡献的说明。
To Top