php鏈接數(shù)據(jù)庫的效率 php鏈接數(shù)據(jù)庫的效率是多少

php 讀寫文件和數(shù)據(jù)庫哪個快

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)上的說法似乎相反。

php使用mysqli和pdo擴(kuò)展,測試對比mysql數(shù)據(jù)庫的執(zhí)行效率完整示例

本文實(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ù)庫操作類

php做的網(wǎng)站 連接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)閉。

為什么 PHP 一直在優(yōu)化程序執(zhí)行效率,而不優(yōu)化數(shù)據(jù)庫連接

因?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)

營銷型網(wǎng)站建設(shè)