收藏
0有用+1
0

mysqlnd

MySQLnd
本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!
Mysql Native驱动(Mysql Native Driver 简称:mysqlnd )在PHP5.3.0版本中被引入。PHP5.4之后的版本mysqlnd被作为默认配置选项。 由zend 公司开发的MySQL数据库驱动,采用PHP开源协议(即 PHP license)避免了任何可能存在的版权问题。而旧的libmysql是有Mysql AB公司(现在的Oracle Corporation)开发,依照mysql license。它是新的函数库,libmysql有的功能它几乎都有,但是mysqlnd并不像libmysql那样作为通用库,它是专门为PHP而写的一个库,用了PHP的内在管理函数以及一些网络流的函数。
外文名
mysqlnd
全    称
Mysql Native Driver
性    质
驱动
引入版本
PHP5.3.0版本

简介

播报
编辑
由于版权问题,PHP5中没有默认支持MySQL,不像以前的PHP4那样可以直接使用MySQL函数。My汗捉订殃sql支持还需要把libmysql.dll复制到windows目录,然后修改php.ini等等,比较麻烦。
PHP最近发布了5.3版本,在该版本当中,提供了一个mysqlnd库,用来访问MySQL数据库,大大提升了PHP的数据库访问性能。
我们知道,PHP访问MySQL数据库,是通过MySQL数据库的libmysql client库,这个libmysql client是用C/C++编写的,虽然一直以来PHP通过lib乘乘重mysql访问数据库性能也一直很好,但是却无法利用PHP本身的很多察辩婆特性。
mysqlnd提供了和Zend引擎高度的集成性,更加快速的执行速度,更少的内存消耗,利用了PHP的Stream API,以及客户端缓存机制。由于mysqlnd是透过Zend引擎,因此提供更多高级特性,以及有效利用Zend进行加速。
从下图1可以看出来,libmysql是直接访问数据库的,而mysqlnd是通过Zend访问数据库。
图1
MySQLnd成为php 5.4中的默认mysql驱动,它有如下优点:
料应1、mysqlnd更容易编译; 因为它是php源码树的一个组成部分
2、m匙境ysqlnd和php内部机制结合更紧密,是优化过的mysql驱动
3、mysqlnd更节省内存,从测试结果来看,比船碑狼传统的m船壳ysql扩展节省40%的内存
4、mysqlnd更快
5、mysqlnd设恋料提供了丰富的性能统计功能
6、mysqlnd使用了PHP license以避免不必要的版权纠纷
这个改动应同时对mysqli和pdo_mysql扩展生效。
mysqlnd库是高度优化和紧密集成到PHP,使用PHP内部C基础设施的无缝集成。全新开发的新驱动,抛弃了原来的用c语言做的外挂在php上的独立模块。mysqlnd 直接使用php内部的变量管理,查询结果直接进入php,原来是在c模块中另外开辟内存空间,然后再一条一条fetch出来。 [1]
php5.3支持mysqlnd。

编译方法

播报
编辑
cd php-5.3.x
./configure --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd 加上你的参数
make
make install
php 5.4及以上编译时可以不加mysqlnd 默认即为mysqlnd。
phpinfo()截图
编译方法
是否启用了 mysqlnd ? 您只要查看 phpinfo中mysql 配置项Client API version 是否是 mysqlnd 即可确认。
[2]