PHP Mysql support: 是mysql 還是mysqlnd?

cenfeng發表於2019-07-01

您正在使用其中一個備用儲存庫安裝現代版本的php,突然間您遇到了一個令人困惑的選擇。你想在php程式中支援mysql(mysqli或PDO-mysql)。你會怎麼選擇? 

首先,您可能應該使用PDO。與mysqli相比,它只是一個更乾淨的資料庫介面,如果你使用像Doctrine2這樣的ORM,它也往往是支援的選項。 

但是你可能已經發現安裝PDO軟體包並不能讓你支援MySQL。 

那麼這2個套餐是什麼?一旦我們將webtatic設定為回購,那麼讓我們看看Centos下的yum向我們展示了什麼:


  *  webtatic:us-east.repo.webtatic.com 
====================================== ======== 
php56w-mysql.x86_64: 用於 使用MySQL資料庫  PHP應用程式
的模組php56w-mysqlnd.x86_64: 用於 使用MySQL資料庫的PHP應用程式的模組
 



簡而言之,mysql擴充套件即mysql庫是引用Oracle / mysql

...通用客戶端庫

名為libmysql。

這是支援mysql的原始php方法。MySQL提供了一個客戶端api庫,並使用該c庫,建立了一個php擴充套件,它依賴於libmysql實現著名的mysql_函式,允許php與mysql通訊。 

mysqlnd包(其中nd代表“本機驅動程式”)是一個專案的成果,它使mysql在php語言中最佳地工作。再次引用mysql網站:

mysqlnd庫經過高度優化,可以與PHP緊密整合。MySQL客戶端庫無法提供相同的優化,因為它是一個通用的客戶端庫。

mysqlnd庫使用PHP內部C基礎架構無縫整合到PHP中。此外,它還使用PHP記憶體管理,PHP Streams(I / O抽象)和PHP字串處理例程。例如,mysqlnd使用PHP記憶體管理可以通過使用只讀變數(寫入時複製)來節省記憶體,並使mysqlnd適用於PHP記憶體限制。



除了這些好處之外,還有一些有趣的增強功能和對外掛的支援,這些外掛可能是您作為開發人員或系統管理員特別感興趣的。 

一般情況下,你的程式碼不應該破壞,因為api在mysqlnd下應該和舊的mysql庫一樣。

結論

總之,您希望現在和將來使用 mysqlnd


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69933200/viewspace-2649178/,如需轉載,請註明出處,否則將追究法律責任。

相關文章