PDO資料連線持久化效能測試
阿新 • • 發佈:2019-01-22
PDO資料連線持久化可以有效地提升連線資料庫的效率。前面文章中做過測試,連線1000次資料庫需要使用100秒,一次連線需要0.1秒。如果在專案中,凡是需要連線資料庫的地方都需要建立一次連線無疑會對系統的效能帶來很大的損失。所以在PDO中可以進行資料庫連線的持久化屬性設定。所謂的資料庫連線持久化就是建立一次連線之後就把該連線直接快取,以後再次用到連線資料庫的時候直接讀取快取而無需再次建立。
具體程式碼測試:
建立1000次連線:
set_time_limit(0); $begiontime=microtime(true); for($i=0;$i<1000;$i++) { $pdo = new PDO("mysql:host=localhost;dbname=myphp", 'root', '123456')); } $endtime=microtime(true); $times=$endtime-$begiontime; echo $times;
返回結果:
101.266328634876
使用資料庫連線持久化之後:
set_time_limit(0); $begiontime=microtime(true); for($i=0;$i<1000;$i++) { $pdo = new PDO("mysql:host=localhost;dbname=myphp", 'root', '123456', array(PDO::ATTR_PERSISTENT => true)); } $endtime=microtime(true); $times=$endtime-$begiontime; echo $times;
返回結果:
0.15400886535645
由此可見,資料庫連線持久化在第一次建立連線之後,就不用再次建立連線而是直接讀取快取。
具體操作只是在PDO的構造方法中加一個數組型別的引數。
array(PDO::ATTR_PERSISTENT => true)