连接数据库不同方式会影响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<br/>";  
    }
$t2 = microtime();
echo $t2-$t1;


执行效率贴图:

 

 

 

以上两张图,都是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<br/>";
    $dbh = null;
} catch (PDOException $e) {
    die ("Error!: " . $e->getMessage() . "<br/>");
}
//默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT => true) 变成这样:
$db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));

$t2 = microtime();
echo $t2-$t1;


执行贴图:

 

 

 

php使用PDO连接DB,页面的响应时间都在ms级,php代码从开始执行和执行结束所输出的微秒差值有的时候相等,而TTFB的时间也相差很大呢。

 

请看到的贴的懂得大师们,做个点评,说明下,谢谢

已懂,作结

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值