PHP-mysqllib和mysqlnd

來源:互聯網
上載者:User

標籤:

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(MySQL官方提供的)驅動.

傳統的安裝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-mysqllib和mysqlnd

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.