PHP的MySQL庫之Pdo-Mysql與Mysqli性能對比
我們知道,LAMP(Linux + Apache + Mysql + PHP)是一種很常用的WEB服務器搭配。PHP中有很多MySQL庫以方便我們的使用,比如說:Pdo-Mysql、Mysqli等等。那么究竟哪種方式性能***呢?本文我們對以上的連接方式作了性能對比試驗:
1、建一個Mysql數(shù)據(jù)庫,新建一張InnoDB表(參考某項目的核心表),然后用存儲過程生成100萬條數(shù)據(jù)。
2、搭一PHP環(huán)境,每次訪問會隨機查詢數(shù)據(jù)庫里的一條數(shù)據(jù)。
3、訪問完成后驗證查詢結(jié)果的正確性。
Pdo-Mysql長連接 $dbh = new PDO(……,array(PDO::ATTR_PERSISTENT => true));
Pdo-Mysql短連接 $dbh = new PDO($host, $username, $password);
Mysqli $dbh = new mysqli($host,$username,$password,$dbname,$port);
Mysqli_connect $dbh = mysqli_connect($host,$username,$password,$dbname,$port);
自帶 $dbh = mysql_connect($host,$username,$password);
結(jié)論:
1、使用Pdo-Mysql的長連接方式,性能***;
2、Mysqli的性能要優(yōu)于使用Pdo-Mysql即時連接;
3、Pdo-Mysql即時連接性能同使用“自帶”方式?jīng)]有明顯差異。
附,Pdo-Mysql與Mysqli的每秒事務數(shù)圖:
附,對應時間段Web服務器的內(nèi)存使用圖:
從上面兩個圖可以看出:
1. Pdo-Mysql之所以比Mysqli快,是由于Pdo-Mysql對數(shù)據(jù)庫的操作比Mysqli要少;
2. 在Pdo-Mysql使用了長連接的測試中,Web服務器內(nèi)存持續(xù)上漲。
(簡單查了一下,是Aapche服務的httpd進程內(nèi)存上漲,再跟進去模塊名顯示[匿名],后續(xù)再繼續(xù)查一下原因)
那么單純從性能角度看,Pdo-Mysql長連接性能***,但有何弊端還有待查證。
關(guān)于PHP中MySQL庫的Pdo-Mysql與Mysqli性能對比的知識就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】






