博客
关于我
PHP 5.3.0以上推荐使用mysqlnd驱动
阅读量:795 次
发布时间:2023-02-27

本文共 1176 字,大约阅读时间需要 3 分钟。

MySQL Native Driver(mysqlnd)详解

1. 什么是 mysqlnd 驱动?

mysqlnd 即 MySQL Native Driver 是一种由 PHP 官方开发的 MySQL 驱动连接代码。它作为 PHP 源码的一部分存在,旨在取代传统的 libmysql 驱动。自 PHP 5.3.0 起,mysqlnd 已成为官方推荐的 MySQL 驱动。

2. PDO 与 mysqlnd 的关系

PDO(PHP Data Objects)是 PHP 的一个应用层抽象类,其核心功能是与数据库交互。无论选择哪种驱动(如 mysqlnd 或 libmysql),PDO 都可以通过统一的 API 提供数据库操作支持。mysqlnd 和 libmysql 的区别在于,前者是由 PHP 官方开发,后者是由 MySQL AB(现为 Oracle 公司)开发并依赖 MySQL 许可协议。

3. 为何使用 mysqlnd 驱动?

A. 许可协议问题

libmysql 由 MySQL AB 公司开发,基于 MySQL 许可协议发布。由于该协议对商业使用有限,PHP 默认禁用 libmysql 驱动。而 mysqlnd 则采用 PHP 许可协议,规避了相关版权和许可问题。

B. 内置于 PHP 源码

mysqlnd 内置于 PHP 源码中,因此在编译 PHP 时不需要预先安装 MySQL 服务器或客户端代码。这样可以简化安装流程,减少依赖管理。

C. 性能优化

mysqlnd 通过优化内存管理,实现了比 libmysql 更高的性能。例如,libmysql 会为每条记录在内存中存储两份数据,而 mysqlnd 只存储一份,从而提升了性能表现。

D. 新增功能

mysqlnd 引入了许多增强功能:

  • 持久连接:减少与 MySQL 服务器的连接次数,提升效率。
  • 新的函数:如 mysqli_fetch_all()、mysqli_get_cache_stats() 等,帮助开发者更好地分析数据库性能。
  • SSL 支持:从 PHP 5.3.3 开始支持 SSL 加密连接。
  • 压缩协议支持:优化数据传输速度。
  • 命名管道支持:从 PHP 5.4.0 开始支持。

4. 如何使用 mysqlnd 驱动?

编译 PHP 时,修改以下配置参数:

--with-mysql=/usr/local/mysql
--with-pdo-mysql=/usr/local/mysql

这样可以启用 mysqlnd 驱动。安装完成后,通过 phpinfo() 检查是否成功安装:

  • 输出中显示 "client API Version: mysqlnd" 表示 mysqlnd 驱动已正确安装。

通过以上方法,可以轻松使用 mysqlnd 驱动,享受其性能优势和便利性。

转载地址:http://jhvfk.baihongyu.com/

你可能感兴趣的文章
Padding
查看>>
paddlehub安装及对口罩检测
查看>>
SpringBoot中集成Actuator实现监控系统运行状态
查看>>
paddle的两阶段基础算法基础
查看>>
Page Object模式:为什么它是Web自动化测试的必备工具
查看>>
SpringBoot中重写addCorsMapping解决跨域以及提示list them explicitly or consider using “allowedOriginPatterns“ in
查看>>
PageHelper 解析及实现原理
查看>>
pageHelper分页工具的使用
查看>>
pageHelper分页技术
查看>>
PageHelper分页查询遇到的小问题
查看>>
PageHelper实现分页详细版、整合SSM应用
查看>>
SpringBoot中配置为开发模式,代码修改后不用重新运行
查看>>
springboot中pom.xml、application.yml、application.properties
查看>>
PageHelper:上手教程(最详细)
查看>>
PageOffice如何实现从零开始动态生成图文并茂的Word文档
查看>>
PageRank算法
查看>>
Paint类(画笔)
查看>>
paip.android 手机输入法制造大法
查看>>
paip.spring3 mvc servlet的配置以及使用最佳实践
查看>>
Palindrome Number leetcode java
查看>>