连接数据库不同方式会影响TTBF快慢
来源:互联网 发布:逆波兰算法 java 编辑:程序博客网 时间:2024/04/30 09:51
正在研究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
- 连接数据库不同方式会影响TTBF快慢
- 不同数据库的连接方式
- 不同数据库jdbc连接方式
- JDBC不同数据库的连接方式
- 连接不同的数据库
- C# 连接不同数据库
- Hibernate连接不同数据库
- Hibernate连接不同数据库
- 索引也会影响数据库效率
- 原型方法的不同写法居然会影响调试
- 不同的颜色会影响你的心境?
- 连接不同数据库的方法
- java连接到不同数据库
- 继承IDbConnection连接不同数据库
- php adodb连接不同数据库
- ADO.Net连接不同数据库
- Java-JDBC-连接不同数据库
- JDBC 不同数据库Driver+连接
- LeetCode 144. Binary Tree Preorder Traversal
- jquery实现隐藏的div出现时滑动效果
- Public Function和Function的区别
- Nearest Common Ancestors_poj1330_LCA
- 用as3.0写的简单的三消游戏demo
- 连接数据库不同方式会影响TTBF快慢
- 【SpringMVC学习05】SpringMVC中的参数绑定总结
- windows自动开关机
- ManyToMany双向外键关联(基于注解)的映射案例(简单版)
- 从Hadoop URL中读取数据
- UISegmentedControl的基本用法
- Android-->Retrofit 2.0 beta2 使用方法
- 常用效果(六) : 格式化json 日志
- 别人的复制文本记录一下