1.什么是mysqlnd驱动?
PHP手册上的描述:
MySQL Native Driver is a replacement for the MySQL Client Library (libmysql).
MySQL Native Driver is part of the official PHP sources as of PHP 5.3.0.
mysqldnd即mysql native driver简写,即是由PHP源码提供的mysql驱动连接代码.它的目的是代替旧的libmysql驱动.
传统的安装php的方式中,我们在编译PHP时,一般需要指定以下几项:
--with-mysql=/usr/local/mysql
--with-pdo-mysql=/usr/local/mysql
这实际上就是使用了mysql官方自带的libmysql驱动, 这是比较老的驱动, PHP 5.3开始已经不建议使用它了, 而建议使用mysqlnd.
2. PDO与mysqlnd, libmysql又是何种关系?
PDO是一个应用层抽象类,底层和mysql server连接交互需要mysql驱动的支持. 也就是说无论你使用了何种驱动,都可以使用PDO.
PDO是提供了PHP应用程序层API接口,而mysqlnd, libmysql则负责与mysql server进行网络协议交互(它并不提供php应用程序层API功能)
3. 为何要使用mysqlnd驱动?
PHP官方手册描述:
A.libmysql驱动是由mysql AB公司(现在是oracle公司)编写, 并按mysql license许可协议发布,所以在PHP中默认是被禁用的.
而mysqlnd是由php官方开发的驱动,以php license许可协议发布,故就规避了许可协议和版权的问题
B.因为mysqlnd内置于PHP源代码,故你在编译安装php时就不需要预先安装mysql server也可以提供mysql client API (mysql_connect, pdo , mysqli), 这将减化一些工作量.
C. mysqlnd是专门为php优化编写的驱动,它使用了PHP本身的特性,在内存管理,性能上比libmysql更有优势. php官方的测试是:libmysql将每条记录在内存中保存了两份,而mysqlnd只保存了一份
D. 一些新的或增强的功能
增强的持久连接
引入特有的函数mysqli_fetch_all()
引入一些性能统计函数 mysqli_get_cache_stats(), mysqli_get_client_stats(),
mysqli_get_connection_stats(),
使用上述函数,可很容易分析mysql查询的性能瓶颈!
SSL支持(从php 5.3.3开始有效)
压缩协议支持
命名管道支持(php 5.4.0开始有效)
4. 看到这里,你可能跃跃欲试,很想使用mysqlnd驱动, 本节描述如何使用mysqlnd驱动
提示: 如果使用mysqlnd,并不需要预先安装mysql
编译php时,修改以下几个项参数即可
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd
验证:如果在phpinfo输出的mysql项中发现 client API Version : mysqlnd, 说明mysqlnd驱动安装成功.
另外,附一个可用于生产环境的php的编译参数列表
./configure --prefix=/usr/local/php \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd
--with-iconv-dir \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--with-mcrypt \
--with-curlwrappers \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear
相关推荐
PHP 5.3.0 x64 是一个针对64位操作系统的PHP版本,它专为处理大量数据和高内存利用率的应用程序设计。...然而,由于其已过时,现在推荐使用更现代的PHP版本,以获得更好的性能、安全性和社区支持。
标题中的"php-5.3.0-Win32-VC9-x86.zip"表明这是一个针对Windows 32位系统的PHP版本,具体是5.3.0版本,且使用了Visual C++ 9(VC9)编译器构建。这通常意味着它与Microsoft的.NET Framework 3.5兼容,因为VC9是该...
综上所述,这个压缩包提供了PHP 5.3.0的Windows 32位版本,包括核心库、安全组件、国际化支持和数据库连接能力,以及方便安装和使用的工具。它对于那些需要在Windows环境下进行PHP开发或者部署PHP应用程序的用户来说...
3. **PHP 5.3.0**:PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其适合Web开发。PHP 5.3.0是PHP的一个重要版本,引入了命名空间(Namespaces)、晚期静态绑定(Late Static Bindings)、闭包...
为了方便以后重新搭建php环境,存一份需要的包,如果有...php-5.3.0.tar.bz2 php-5.3.0-fpm-0.5.12.diff.gz fontconfig-2.4.2.tar.gz freetype-2.4.2.tar.gz gd-2.0.35.tar.gz jpegsrc.v9.tar.gz libpng-1.5.13.tar.gz
这个版本在设计时并未考虑多线程环境的安全性,因此通常推荐用于单线程或不使用多线程的Apache服务器环境中。 PHP是一种广泛使用的开源服务器端脚本语言,特别适合于Web开发,可以嵌入到HTML中使用。PHP 5.3是其...
QT5.3.0登陆Demo是一个基于QT5.3.0版本的登录示例项目,主要展示了如何在Qt环境中创建一个基本的用户登录界面。这个Demo涵盖了Qt编程的基础知识,包括UI设计、信号与槽机制、事件处理以及数据验证等核心概念。 首先...
赠送jar包:pagehelper-5.3.0.jar; 赠送原API文档:pagehelper-5.3.0-javadoc.jar; 赠送源代码:pagehelper-5.3.0-sources.jar; 赠送Maven依赖信息文件:pagehelper-5.3.0.pom; 包含翻译后的API文档:pagehelper...
通过"说明.pdf",开发者可以学习如何有效地使用Bootstrap 5.3.0,而"bootstrap-5.3.0-alpha1-dist" 提供了可以直接在项目中使用的预编译文件。这个压缩包为开发者提供了一个强大且易用的工具集,加速了响应式网页...
总结,PHPDisk网盘系统GBK版 v5.3.0是一个适合商业使用的中文网络存储解决方案,它提供了全面的文件管理功能,并注重用户体验和安全性。对于需要搭建内部文件分享平台或提供云存储服务的企业来说,是个不错的选择。
这个【标题】"openlayers 5.3.0" 指的是OpenLayers库的5.3.0版本,这可能是该库的一个稳定发布,包含了新功能、性能优化和可能的错误修复。 在描述中提到的问题,用户指出在OpenLayers的官网上下载文件遇到了困难,...
php5.3.0版应用程序非安装版。Windows 下的php开发软件。直接解压后进行相关设置即可使用。建议配合Apache使用。该版本好像只支持CGI方式调用。具体配置请参见本人的日志,(以CGI方式运行PHP,PHP_CGI)...
在QT5.3.0中使用多线程,首先你需要继承`QThread`并重写`run()`方法,这是线程的主要执行体。然后创建线程实例,并启动线程。例如: ```cpp class MyThread : public QThread { Q_OBJECT public: void run() ...
ISP程序 GProbe 5.3.0ISP程序 GProbe 5.3.0ISP程序 GProbe 5.3.0ISP程序 GProbe 5.3.0ISP程序 GProbe 5.3.0ISP程序 GProbe 5.3.0ISP程序 GProbe 5.3.0ISP程序 GProbe 5.3.0ISP程序 GProbe 5.3.0ISP程序 GProbe 5.3.0...
ECharts 5.3.0 是该库的一个版本,提供了丰富的图表类型、精美的图表设计以及强大的交互功能,是前端开发人员进行数据可视化的得力工具。在这个版本中,我们可能会发现一些性能优化、新特性、bug修复以及对旧版本的...
4. **例子(Examples)**:压缩包中的"examples"目录包含了各种示例代码,展示如何使用OpenLayers创建不同类型的地图应用。这些实例是学习和理解库功能的好资源,涵盖了从基本的地图加载到复杂交互的各种场景。 5. ...
Lua 5.3.0 开发包是一款小巧而强大的脚本语言,被广泛应用于游戏开发、嵌入式系统以及各种应用程序的扩展。这个压缩包包含了你需要的所有资源来在Visual Studio (VS)环境中构建和使用Lua静态库。让我们深入探讨如何...
php-5.3.0-fpm-0.5.12
标题中的"Postman-win64-5.3.0"指的是适用于Windows 64位系统的Postman版本5.3.0。这个版本的Postman为用户提供了一套全面的接口调试功能,帮助开发者有效地进行HTTP请求的发送和响应的接收分析。 首先,Postman...
**Elasticsearch 5.3.0 JDBC 源码工程详解** Elasticsearch 是一个高性能、可扩展的全文搜索引擎,常用于大数据分析和实时搜索。JDBC (Java Database Connectivity) 则是 Java 平台中用于连接数据库的标准应用编程...