ttbf 慢 php,連接數據庫不同方式會影響TTBF快慢

正在研究php框架,突然發現一個奇特的問題:框架中php代碼連接數據庫使用PDO和mysqli,盡然會導致頁面加載速度上產生很大的差距。一開始還以為是框架本身造成的這種現象,所以在本地寫了一個基礎的測試用例,只是分別用PDO和Mysqli連接數據庫,看看頁面響應速度。並且在php代碼剛開始執行和執行結束輸出微秒差值。

第一種連接DB方式:

$t1 = microtime();

/* Connect to a MySQL server 連接數據庫服務器 */

$link = mysqli_connect(

'localhost', /* The host to connect to 連接MySQL地址 */

'xxxx', /* The user to connect as 連接MySQL用戶名 */

'xxxx', /* The password to use 連接MySQL密碼 */

xxxx'); /* The default database to query 連接數據庫名稱*/

if (!$link) {

printf("Can't connect to MySQL Server. Errorcode: %s ", mysqli_connect_error());

exit;

} else {

echo "connet ok
";

}

$t2 = microtime();

echo $t2-$t1;

執行效率貼圖:

go

7c9e4cbd5155a5df4334f78875e325f2.jpe

dc20f04a685a4b7e537cb606a786fc7d.jpe

go

以上兩張圖,都是php使用mysqli連接數據庫,可以看到TTFB響應時間超長,都1s以上了,這只是打開一個只連接數據庫的頁面,但是頁面上開始執行和結束的微秒有的時候差距蠻大。大部分是在0.0023微秒。

第二種方式:

$t1 = microtime();

$dbms='mysql'; //數據庫類型

$host='127.0.0.1:3306'; //數據庫主機名

$dbName='xxxx'; //使用的數據庫

$user='xxxx'; //數據庫連接用戶名

$pass='xxxx'; //對應的密碼

$dsn="$dbms:host=$host;dbname=$dbName";

try {

$dbh = new PDO($dsn, $user, $pass); //初始化一個PDO對象

echo "connect ok
";

$dbh = null;

} catch (PDOException $e) {

die ("Error!: " . $e->getMessage() . "
");

}

//默認這個不是長連接,如果需要數據庫長連接,需要最后加一個參數:array(PDO::ATTR_PERSISTENT => true) 變成這樣:

$db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));

$t2 = microtime();

echo $t2-$t1;

執行貼圖:

go

43e0f0657f9eabc17513d9e652b749e0.jpe

02b2afba81bbfdcd7d0d91ec2fa77de8.jpe

go

php使用PDO連接DB,頁面的響應時間都在ms級,php代碼從開始執行和執行結束所輸出的微秒差值有的時候相等,而TTFB的時間也相差很大呢。

請看到的貼的懂得大師們,做個點評,說明下,謝謝

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值