PHP 的 MySQL 原生驅動程式 (mysqlnd) 是 PHP 腳本語言的 MySQL Client Library (libmysql) 的直接替換方案。
PHP MySQL 擴充功能
PHP MySQL 擴充功能是建立在 C 客户端程式庫之上的輕量級封裝。有 3 個 PHP MySQL 擴充功能
- ext/mysql (不建議)
- ext/mysqli
- PDO_MySQL
建議使用 mysqli 或 PDO_MySQL 擴充功能。不建議在新開發中使用舊的 mysql 擴充功能。
選擇程式庫
這些擴充功能可以使用 mysqlnd 或 libmysql 程式庫從 PHP 連接到 MySQL。選擇哪個程式庫是在編譯時決定的。這兩個程式庫都受到支援且不斷改進中。
MySQL 建議將 PHP 的 MySQL 原生驅動程式 (mysqlnd) 與 ext/mysqli 或 PDO_MySQL 一起使用。
下載原始碼與二進位檔
所有 3 個 PHP MySQL 擴充功能和 mysqlnd 程式庫都是 PHP 原始碼的一部分。原始碼和二進位檔可從以下網址取得:https://php.dev.org.tw/downloads.php
PHP 5.4 將 mysqlnd 作為預設值
自 PHP 5.4 起,mysqlnd 程式庫是 php.net 編譯時所有 PHP MySQL 擴充功能的預設值。此外,php.net Windows 團隊自從 mysqlnd 在 PHP 5.3 中可用以來,就一直在官方的 PHP Windows 發行版中使用 mysqlnd。
使用 mysqlnd 的優點
mysqlnd 程式庫經過高度最佳化,並與 PHP 緊密整合。MySQL Client Library 無法提供相同的最佳化,因為它是一個通用的客户端程式庫。
mysqlnd 程式庫正在使用 PHP 內部 C 基礎架構來無縫整合到 PHP 中。此外,它還在使用 PHP 記憶體管理、PHP Streams (I/O 抽象) 和 PHP 字串處理常式。mysqlnd 使用 PHP 記憶體管理允許例如透過使用唯讀變數 (寫入時複製) 來節省記憶體,並使 mysqlnd 適用於 PHP 記憶體限制。其他優點包括
- 強大的外掛程式 API 來擴充功能集
- 非同步、非阻塞查詢
- 150 多個效能統計資料
- 與 PHP 5.3 及更高版本的原始碼一起提供
- 無需安裝 MySQL Client Library
- 強大的外掛程式。請參閱下方。
Mysqlnd 外掛程式
PECL 提供各種 mysqlnd 外掛程式,提供額外的功能。PECL。熱門的 mysqlnd 外掛程式包括
- 複寫和負載平衡外掛程式 - mysqlnd_ms
- 查詢結果快取外掛程式 - mysqlnd_qc
- 使用者處理常式外掛程式 (使用 PHP 而非 C 撰寫外掛程式) - mysqlnd_uh
- Mysqlnd 連線多工外掛程式 mysqlnd_mux
- Mysqlnd Memcache 外掛程式
- 多重連線外掛程式 - mysqlnd_mc
- 預備語句處理常式快取外掛程式 - PECL/mysqlnd_pscache
- SQL 注入保護外掛程式 - PECL/mysqlnd_sip