1. 程式人生 > >mysql基本連線,mysqli,pdo,adodb,pearDB之間的區別,速度測試

mysql基本連線,mysqli,pdo,adodb,pearDB之間的區別,速度測試

測試了一下mysql基本連線,mysqli,pdo,adodb,pearDB這幾個的速度,結果如下: 
用火狐測試1000次查詢: 

mysql基本連線: 2.26953577995  
mysql基本連線: 2.18697500229  
mysql基本連線: 1.75704884529  
mysql基本連線: 2.14706707001  
mysql基本連線: 1.51761412621  
mysql基本連線: 1.7188680172  
mysql基本連線: 2.32342600822  
mysql基本連線: 1.34252810478  
mysql基本連線: 1.45732498169  
mysql基本連線: 3.65399098396  
10次總共時間: 20.3743789196 
最快的時間: 1.34252810478  

mysqli: 2.35137701035  
mysqli: 2.01316308975  
mysqli: 1.98780703545  
mysqli: 2.21229410172  
mysqli: 2.24351000786  
mysqli: 1.49605917931  
mysqli: 2.17403697968  
mysqli: 2.6106979847  
mysqli: 2.58286499977  
mysqli: 3.17641019821  
10次總共時間: 22.8482205868 
最快的時間: 1.49605917931  

pdo: 1.90496611595  
pdo: 3.74309897423  
pdo: 1.86429619789  
pdo: 3.76973009109  
pdo: 3.53142094612  
pdo: 2.90672111511  
pdo: 1.9796090126  
pdo: 2.14065814018  
pdo: 2.19515609741  
pdo: 2.10665798187  
10次總共時間: 26.14231467245 
最快的時間: 1.86429619789  

adodb: 2.5019569397 
adodb: 2.61657714844 
adodb: 2.92435717583 
adodb: 2.80851197243 
adodb: 2.60950493813 
adodb: 2.54582691193 
adodb: 2.11301803589 
adodb: 2.50546598434 
adodb: 2.60761213303 
adodb: 2.22149610519 
10次總共時間: 25.45432734491 
最快的時間: 2.11301803589  

pearDB: 4.00152897835 
pearDB: 4.18637084961 
pearDB: 4.05423617363 
pearDB: 4.27408695221 
pearDB: 3.83169102669 
pearDB: 4.07294511795 
pearDB: 4.41416597366 
pearDB: 4.13296508789 
pearDB: 4.28273415565 
pearDB: 4.09678888321 
10次總共時間: 41.34751319885 
最快的時間: 3.83169102669 

再次以火狐測試10000次查詢: 
mysql基本連線: 21.663392067  
mysqli: 20.0792491436   
pdo: 30.829996109  
adodb: 27.3853821754 
pearDB: 40.922711134 

mysql基本連線: 18.972700119  
mysqli: 19.537981987  
pdo: 20.9608280659  
adodb: 24.1204249859 
pearDB: 38.7300019264 

得出結論: 
mysql和mysqli速度基本差不多,或者是mysql略快; 
pdo和adodb速度差不多,比mysql和mysqli要慢一些; 
pearDB最慢。 

那麼,實現開發中,我們該用哪個好呢? 
從執行效率的角度來說,當然是用mysql基本連線或mysqli了。mysql基本連線是一堆函式,有一些功能如取得二維資料之類等可能需要自己去封裝。mysqli是php的擴充套件,是一個預定義類,功能強,使用方便,但有的伺服器上可能沒有安裝mysqli擴充套件。 
pdo同mysqli一樣是php的一個擴充套件,有的伺服器可能也沒有安裝pdo,而且比mysqli略慢,所以一般不推薦使用。選擇pdo不如選擇mysqli。 
adodb是php寫成的,不需要安裝額外的擴充套件,可以操作多種資料庫。所以如果你的系統可能會改變資料庫或涉及到多種資料庫,可以用adodb。但一般實際開發中都是確定的一個數據庫,所以也不建議使用。 
pearDB最慢,也看不出來有什麼特別的優點,不推薦使用。 

最終結論: 

可用mysql基本連線,自己封裝成類。特別是開源程式,因為不確定伺服器是否可以支援mysqli,應使用mysql基本連線。 
特定的專案,有自己的伺服器,可以自行安裝mysqli擴充套件,推薦使用mysqli。 

mysqli在5.3.0時加上了持久連線。