1、直接讀文件相比數(shù)據(jù)庫查詢效率更勝一籌,而且文中還沒算上連接和斷開的時間。
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供伊川網(wǎng)站建設(shè)、伊川做網(wǎng)站、伊川網(wǎng)站設(shè)計(jì)、伊川網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、伊川企業(yè)網(wǎng)站模板建站服務(wù),10多年伊川做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
2、一次讀取的內(nèi)容越大,直接讀文件的優(yōu)勢會越明顯(讀文件時間都是小幅增長,這跟文件存儲的連續(xù)性和簇大小等有關(guān)系),這個結(jié)果恰恰跟天緣預(yù)料的相反,說明MYSQL對更大文件讀取可能又附加了某些操作(兩次時間增長了近30%),如果只是單純的賦值轉(zhuǎn)換應(yīng)該是差異偏小才對。
3、寫文件和INSERT幾乎不用測試就可以推測出,數(shù)據(jù)庫效率只會更差。
4、很小的配置文件如果不需要使用到數(shù)據(jù)庫特性,更加適合放到獨(dú)立文件里存取,無需單獨(dú)創(chuàng)建數(shù)據(jù)表或記錄,很大的文件比如圖片、音樂等采用文件存儲更為方便,只把路徑或縮略圖等索引信息放到數(shù)據(jù)庫里更合理一些。
5、PHP上如果只是讀文件,file_get_contents比fopen、fclose更有效率,不包括判斷存在這個函數(shù)時間會少3秒左右。
6、fetch_row和fetch_object應(yīng)該是從fetch_array轉(zhuǎn)換而來的,我沒看過PHP的源碼,單從執(zhí)行上就可以說明fetch_array效率更高,這跟網(wǎng)上的說法似乎相反。
本文實(shí)例講述了php使用mysqli和pdo擴(kuò)展,測試對比mysql數(shù)據(jù)庫的執(zhí)行效率。分享給大家供大家參考,具體如下:
?php
/**
*
測試pdo和mysqli的執(zhí)行效率
*/
header("Content-type:text/html;charset=utf-8");
//通過pdo鏈接數(shù)據(jù)庫
$pdo_startTime
=
microtime(true);
$pdo
=
new
PDO("mysql:host=localhost;dbname=test","root","1234",array(PDO::MYSQL_ATTR_INIT_COMMAND
=
"SET
NAMES'utf8';"));
for($i=1;$i=100;$i++){
$title
=
"pdo標(biāo)題".$i;
$content
=
"pdo內(nèi)容".$i;
$addtime
=
time();
$user_id
=
$i;
$pdo_sql
=
"INSERT
INTO
`article`(`title`,`content`,`addtime`,`user_id`)
VALUES(:title,:content,:addtime,:user_id)";
$sth
=
$pdo-prepare($pdo_sql);
$sth-bindParam(':title',$title);
$sth-bindParam(':content',$content);
$sth-bindParam(':addtime',$addtime);
$sth-bindParam(':user_id',$user_id);
$sth-execute();
}
$pdo_endTime
=
microtime(true);
$pdo_time
=
$pdo_endTime
-
$pdo_startTime;
echo
$pdo_time;
echo
"hr/";
//通過mysql鏈接數(shù)據(jù)庫
$mysqli_startTime
=
microtime(true);
$mysqli
=
mysqli_connect("localhost","root","1234","test")
or
die("數(shù)據(jù)連接失敗");
mysqli_query($mysqli,"set
names
utf8");
for($i=1;$i=100;$i++){
$title
=
"mysqli標(biāo)題".$i;
$content
=
"mysqli內(nèi)容".$i;
$addtime
=
time();
$user_id
=
$i;
$sql
=
"INSERT
INTO
`article`(`title`,`content`,`addtime`,`user_id`)
VALUES('".$title."','".$content."',".$addtime.",".$user_id.")";
mysqli_query($mysqli,$sql);
}
$mysqli_endTime
=
microtime(true);
$mysqli_time
=
$mysqli_endTime
-
$mysqli_startTime;
echo
$mysqli_time;
echo
"hr/";
if($pdo_time
$mysqli_time){
echo
"pdo的執(zhí)行時間是mysqli的".round($pdo_time/$mysqli_time)."倍";
}else{
echo
"mysqli的執(zhí)行時間是pdo的".round($mysqli_time/$pdo_time)."倍";
}
測試結(jié)果:其實(shí)經(jīng)過多次測試,pdo和mysqli的執(zhí)行效率差不多。
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP基于pdo操作數(shù)據(jù)庫技巧總結(jié)》、《php+mysqli數(shù)據(jù)庫程序設(shè)計(jì)技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:php使用mysqli和pdo擴(kuò)展,測試對比連接mysql數(shù)據(jù)庫的效率完整示例php中數(shù)據(jù)庫連接方式pdo和mysqli對比分析php中關(guān)于mysqli和mysql區(qū)別的一些知識點(diǎn)分析php操作mysqli(示例代碼)php封裝的mysqli類完整實(shí)例PHP以mysqli方式連接類完整代碼實(shí)例php簡單解析mysqli查詢結(jié)果的方法(2種方法)php中mysql連接方式PDO使用詳解Php中用PDO查詢Mysql來避免SQL注入風(fēng)險的方法php
mysql
PDO
查詢操作的實(shí)例詳解PHP實(shí)現(xiàn)PDO的mysql數(shù)據(jù)庫操作類
你可以把連接的方法寫進(jìn)類里,讓它形成方法比如
class something {
global $db;
function web_db(){
$this-db = $this-database(); //把連接方法存如屬性里
}
function database($server = 'localhost',$root = 'root',$pass = '****'){
......//這里寫你的連接方法,及其關(guān)聯(lián)表操作
}
...//其他方法
} //class end
在你的頁面程序中這樣寫
require_once "web_common.class.php";//包進(jìn)你的類文件
$mysql = new something;
在你需要數(shù)據(jù)查詢或?qū)懭氲臅r候只要調(diào)用 $mysql-db;就好了
如上你可以看出,無論你有多少客戶請求數(shù)據(jù)庫,而數(shù)據(jù)庫只在載入頁面時連接一次而已,調(diào)用 $mysql-db 只是請求程序,請求方法而已,沒有請求數(shù)據(jù)庫。第一,數(shù)據(jù)庫連接查詢只有一次;第二無形中也加快了頁面的載入速度。
記住,你做網(wǎng)頁不是給一個人兩個人用的,而是很很很多個,為了保證數(shù)據(jù)庫的正常使用,在多請求的情況下依然能很好工作,這是個很好的辦法。
最后close是可寫可不寫的,因?yàn)楫?dāng)mysql沒有請求時,它會自動關(guān)閉。
因?yàn)槌绦蚍謨煞N。一是邏輯層 ,二是數(shù)據(jù)層。邏輯層一般是進(jìn)行運(yùn)算的,比如一些算法。這個很影響執(zhí)行效率的。然而數(shù)據(jù)層多數(shù)是用來存儲數(shù)據(jù)的。比如用戶信息、內(nèi)容等。這些沒有好的辦法優(yōu)化。但是你所謂的優(yōu)化數(shù)據(jù)連接我沒太理解。一般也會做數(shù)據(jù)優(yōu)化。比如mysql性能優(yōu)化、數(shù)據(jù)緩存、數(shù)據(jù)查詢等。還有就是分布式部署等。希望能幫到你。
名稱欄目:php鏈接數(shù)據(jù)庫的效率 php鏈接數(shù)據(jù)庫的效率是多少
瀏覽路徑:http://muchs.cn/article14/ddigede.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、面包屑導(dǎo)航、Google、定制網(wǎng)站、網(wǎng)站制作、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)