简介:
mysql native driver 作为php的扩展,取代了libmysqlclient ,为php在 mysql ,mysqli pdomysql 上 提供mysql 的支持。
安装:
./configure --with-mysql=mysqlnd
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
./configure —enable-mysqlnd
优点:
1、mysqlnd更容易编译; 因为它是php源码树的一个组成部分
2、mysqlnd和php内部机制结合更紧密,是优化过的mysql驱动
3、mysqlnd更节省内存,从测试结果来看,比传统的mysql扩展节省40%的内存
4、mysqlnd更快
5、mysqlnd提供了丰富的性能统计功能(http://www.php.net/manual/zh/mysqlnd.stats.php)
6、mysqlnd使用了PHP license以避免不必要的版权纠纷
其他:
1、mysqlnd 是php的扩展, 所以它内部的连接使用php stream, 可以通过一些stream的控制 来控制 类似连接的一些东西。
2、可以通过 mysql_ms , mysql_qc,mysqlnd_mc , mysqlnd_pscache , mysqlnd_sip mysqlnd_uh,增强功能,改进性能,统计分析等。
3、php5.3.3之后mysql支持ssl,php5.3.2之后 支持 Compressed Protocol
4、mysqli扩展添加 MYSQLI_ASYNC 查询支持 异步查询。
5、 提供一些比libmysqlclient 更新友好的超时,buffer的设置。可以通过一些stream 设置类似 default_socket_timeout 来说影响stream , http://www.php.net/manual/en/mysqlnd.config.php,
不兼容性
bitl类型在原来返回二进制的数据( "�" or "x1F”),在mysqlnd里面返回数字形式的字符串, 如果要保持兼容性,可以改变sql 类似select bit + 0 是两者保持保持一致