PHP 5.3.0以上推薦使用mysqlnd驅動

1.什麼是mysqlnd驅動? php

PHP手冊上的描述: mysql

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.  sql


mysqldndmysql native driver簡寫,便是由PHP源碼提供的mysql驅動鏈接代碼.它的目的是代替舊的libmysql驅動. 網絡

傳統的安裝php的方式中,咱們在編譯PHP,通常須要指定如下幾項:
--with-mysql=/usr/local/mysql  oracle

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

這實際上就是使用了mysql官方自帶的libmysql驅動這是比較老的驅動, PHP 5.3開始已經不建議使用它了而建議使用mysqlnd. curl

2. PDOmysqlnd, libmysql又是何種關係?
PDO是一個應用層抽象類,底層和mysql server鏈接交互須要mysql驅動的支持也就是說不管你使用了何種驅動,均可以使用PDO.

PDO是提供了PHP應用程序層API接口,mysqlnd, libmysql則負責與mysql server進行網絡協議交互(它並不提供php應用程序層API功能) socket

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

相關文章
相關標籤/搜索