我們知道,LAMPLinux + Apache + Mysql + PHP)是一種很常用的WEB服務器搭配。PHP中有很多MySQL庫以方便我們的使用,比如說:Pdo-Mysql、Mysqli等等。那麼究竟哪種方式性能最佳呢?本文我們對以上的連接方式作了性能對比試驗:
1、建一個Mysql數據庫,新建一張InnoDB表參考某項目的核心表),然後用存儲過程生成100萬條數據。
2、搭一PHP環境,每次訪問會隨機查詢數據庫裡的一條數據。
3、訪問完成後驗證查詢結果的正確性。
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);
結論:
1、使用Pdo-Mysql的長連接方式,性能最佳;
2、Mysqli的性能要優於使用Pdo-Mysql即時連接;
3、Pdo-Mysql即時連接性能同使用“自帶”方式沒有明顯差異。
附,Pdo-Mysql與Mysqli的每秒事務數圖:
附,對應時間段Web服務器的內存使用圖:
從上面兩個圖可以看出:
1. Pdo-Mysql之所以比Mysqli快,是由於Pdo-Mysql對數據庫的操作比Mysqli要少;
2. 在Pdo-Mysql使用了長連接的測試中,Web服務器內存持續上漲。
簡單查了一下,是Aapche服務的httpd進程內存上漲,再跟進去模塊名顯示[匿名],後續再繼續查一下原因)
那麼單純從性能角度看,Pdo-Mysql長連接性能最佳,但有何弊端還有待查證。
關於PHP中MySQL庫的Pdo-Mysql與Mysqli性能對比的知識就介紹到這裡了,希望本次的介紹能夠對您有所收獲!