溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP Mysql support: 是mysql 還是mysqlnd?

發(fā)布時(shí)間:2020-08-09 12:22:28 來(lái)源:ITPUB博客 閱讀:122 作者:cenfeng 欄目:MySQL數(shù)據(jù)庫(kù)

您正在使用其中一個(gè)備用存儲(chǔ)庫(kù)安裝現(xiàn)代版本的php,突然間您遇到了一個(gè)令人困惑的選擇。你想在php程序中支持mysql(mysqli或PDO-mysql)。你會(huì)怎么選擇? 

首先,您可能應(yīng)該使用PDO。與mysqli相比,它只是一個(gè)更干凈的數(shù)據(jù)庫(kù)界面,如果你使用像Doctrine2這樣的ORM,它也往往是支持的選項(xiàng)。 

但是你可能已經(jīng)發(fā)現(xiàn)安裝PDO軟件包并不能讓你支持MySQL。 

那么這2個(gè)套餐是什么?一旦我們將webtatic設(shè)置為回購(gòu),那么讓我們看看Centos下的yum向我們展示了什么:


  *  webtatic:us-east.repo.webtatic.com 
====================================== ======== 
php56w-mysql.x86_64: 用于 使用MySQL數(shù)據(jù)庫(kù)  PHP應(yīng)用程序
的模塊php56w-mysqlnd.x86_64: 用于 使用MySQL數(shù)據(jù)庫(kù)的PHP應(yīng)用程序的模塊
 



簡(jiǎn)而言之,mysql擴(kuò)展即mysql庫(kù)是引用Oracle / mysql

...通用客戶端庫(kù)

名為libmysql。

這是支持mysql的原始php方法。MySQL提供了一個(gè)客戶端api庫(kù),并使用該c庫(kù),創(chuàng)建了一個(gè)php擴(kuò)展,它依賴于libmysql實(shí)現(xiàn)著名的mysql_函數(shù),允許php與mysql通信。 

mysqlnd包(其中nd代表“本機(jī)驅(qū)動(dòng)程序”)是一個(gè)項(xiàng)目的成果,它使mysql在php語(yǔ)言中最佳地工作。再次引用mysql網(wǎng)站:

mysqlnd庫(kù)經(jīng)過(guò)高度優(yōu)化,可以與PHP緊密集成。MySQL客戶端庫(kù)無(wú)法提供相同的優(yōu)化,因?yàn)樗且粋€(gè)通用的客戶端庫(kù)。

mysqlnd庫(kù)使用PHP內(nèi)部C基礎(chǔ)架構(gòu)無(wú)縫集成到PHP中。此外,它還使用PHP內(nèi)存管理,PHP Streams(I / O抽象)和PHP字符串處理例程。例如,mysqlnd使用PHP內(nèi)存管理可以通過(guò)使用只讀變量(寫入時(shí)復(fù)制)來(lái)節(jié)省內(nèi)存,并使mysqlnd適用于PHP內(nèi)存限制。



除了這些好處之外,還有一些有趣的增強(qiáng)功能和對(duì)插件的支持,這些插件可能是您作為開(kāi)發(fā)人員或系統(tǒng)管理員特別感興趣的。 

一般情況下,你的代碼不應(yīng)該破壞,因?yàn)閍pi在mysqlnd下應(yīng)該和舊的mysql庫(kù)一樣。

結(jié)論

總之,您希望現(xiàn)在和將來(lái)使用 mysqlnd


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI