thinkphp 链接mysql 执行速度慢,但是使用pdo链接速度很快 相同的一条查询语句,查出的数据记录只有5条。thinkphp 链接mysql ,执行速度约为1.03S('DB_TYPE' => 'mysql')thinkphp使用pdo 链接mysql ,执行速度约为30ms('DB_TYPE' => 'pdo')请问 我该如何去查找问题原因 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 PDO 优于 mysql 是必然的,否则 PDO 就没有存在的必要了 就是简单的select * from *****速度上的差异,这么明显吗 mysql应该不会慢那么多,估计哪里有问题...但既然pdo这么快就用pdo好了... 不过在 php5.4.20 中测试时,mysql 函数组明显的要快于 pdofunction mmysql() { mysql_connect(); mysql_select_db('test'); mysql_query('set names gbk'); $rs = mysql_query('select * from clip limit 10'); while($row = mysql_fetch_assoc($rs)) $res[] = $row;// mysql_close(); return $res;}function mpdo() { $p = new PDO('mysql:host=localhost;dbname=test', 'roo', '', array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names gbk")); $st = $p->query('select * from clip limit 10'); return $st->fetchAll(PDO::FETCH_ASSOC);}$num = 100; //执行100次$t = microtime(1);$n = $num;while($n--) mmysql();printf("mysql: %.4f\n", microtime(1) - $t);$t = microtime(1);$n = $num;while($n--) mpdo();printf("pdo: %.4f\n", microtime(1) - $t);mysql: 0.1094pdo: 1.6562 在 mmysql 中关闭连接(mysql_close()),得mysql: 1.6406pdo: 1.5781也是可以接受的 可以把localhost换成127.0.0.1试下 我的new PDO也挺慢的,但是换成把localhost换成127.0.0.1就快了很多了,估计是到本地hosts里面取查询了一次耗了些时间 php 新手如何对phpwind进行二次开发 时间戳计算两个时间间隔 小时:分钟:秒 求救:帮忙写个curl登录获得个人信息的代码!十万火急~ PHP访问权限的实现 关于curl这句话不是很理解请大家看一下 请问这个自动补全的ajax查询哪个更科学 php 数据形式的转化 fopen创建中文TXT文件时出错 求教:公告板通过简要链到全文的sql语句,请大侠帮忙修改:) PHP怎么让它不使用缓冲区 各位大神 求解决 Linux 下 LAMP 环境搭建 扩展编译 关于网站导航二级域名的问题,纠结很久了
但既然pdo这么快就用pdo好了...
mysql_connect();
mysql_select_db('test');
mysql_query('set names gbk');
$rs = mysql_query('select * from clip limit 10');
while($row = mysql_fetch_assoc($rs)) $res[] = $row;
// mysql_close();
return $res;
}function mpdo() {
$p = new PDO('mysql:host=localhost;dbname=test', 'roo', '', array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names gbk"));
$st = $p->query('select * from clip limit 10');
return $st->fetchAll(PDO::FETCH_ASSOC);
}
$num = 100; //执行100次
$t = microtime(1);
$n = $num;
while($n--) mmysql();
printf("mysql: %.4f\n", microtime(1) - $t);
$t = microtime(1);
$n = $num;
while($n--) mpdo();
printf("pdo: %.4f\n", microtime(1) - $t);
mysql: 0.1094
pdo: 1.6562
mysql: 1.6406
pdo: 1.5781
也是可以接受的