设为首页
收藏本站
Archiver
用户
登录
入住
用户名
Email
自动登录
找回密码
密码
登录
入住 CI 中国社区
首页
返回 CodeIgniter 中国首页
论坛
BBS
导读
Guide
个人主页
Space
中文手册
搜索
CodeIgniter 搜索引擎
视频教程
案例
任务
搜索
搜索
本版
帖子
用户
设为首页
收藏本站
Archiver
开启辅助访问
切换到宽版
日志
相册
分享
记录
CodeIgniter4
CodeIgniter3
CodeIgniter2
帖子
好友
道具
勋章
收藏
任务
记录
留言板
设置
我的收藏
退出
腾讯QQ
微信登录
CodeIgniter 中国开发者社区
»
论坛
›
CodeIgniter 开发
›
CodeIgniter 问答求助
›
CI 访问数据库和 PHP 直接访问数据库速度差距达80倍? ...
1
2
3
/ 3 页
下一页
返回列表
楼主:
cuiy6642
CI 访问数据库和 PHP 直接访问数据库速度差距达80倍?
[复制链接]
cuiy6642
cuiy6642
当前离线
积分
2
IP卡
狗仔卡
楼主
|
发表于 2008-11-10 21:53:03
|
显示全部楼层
附加说明:
我的测试环境:apache2 + php5 + MySQL 5.1 + Firebird2.1
回复
支持
反对
使用道具
举报
显身卡
cuiy6642
cuiy6642
当前离线
积分
2
IP卡
狗仔卡
楼主
|
发表于 2008-11-10 21:53:23
|
显示全部楼层
附加说明:
我的测试环境:apache2 + php5 + MySQL 5.1 + Firebird2.1
回复
支持
反对
使用道具
举报
显身卡
沧蓝
沧蓝
当前离线
积分
757
IP卡
狗仔卡
发表于 2008-11-11 06:41:05
|
显示全部楼层
把
PHP
复制代码
foreach
(
$query
->
result
(
)
as
$row
)
复制代码
改为
PHP
复制代码
$result
=
$query
->
result
(
)
;
foreach
(
$result
as
$row
)
复制代码
然后再试试看?
回复
支持
反对
使用道具
举报
显身卡
沧蓝
沧蓝
当前离线
积分
757
IP卡
狗仔卡
发表于 2008-11-11 06:42:27
|
显示全部楼层
请集中一个帖子讨论吧:
http://codeigniter.org.cn/forums/viewthread.php?tid=1245
回复
支持
反对
使用道具
举报
显身卡
cuiy6642
cuiy6642
当前离线
积分
2
IP卡
狗仔卡
楼主
|
发表于 2008-11-11 09:24:50
|
显示全部楼层
修改后结果如下,改善不大:
connect time = 0.022449016571045
query time = 0.036113977432251
9 京GTD670
10 京AC5259
11 京KQ3430
12 京HD9405
8 京GEB023
13 京LD3951
14 京FW8312
15 京JG4468
16 京GHV802
17 京GYA135
18 京GW0027
19 军A02139
20 京ER3268
21 京K44803
22 京J12111
23 京EX1420
24 京F81920
25 京FV8303
26 京AU3930
27 京LF6087
loop time = 1.5624001026154
复制代码
回复
支持
反对
使用道具
举报
显身卡
cuiy6642
cuiy6642
当前离线
积分
2
IP卡
狗仔卡
楼主
|
发表于 2008-11-11 09:27:09
|
显示全部楼层
MySQL 修改后的结果如下,依然存在很大差距。
connect time = 0.022861957550049
query time = 0.027480125427246
1 0001 USER01
2 0002 USER02
3 0003 USER03
4 0004 USER04
5 0005 USER05
6 0006 USER06
7 0007 USER07
8 0008 USER08
9 0009 USER09
10 0010 USER10
11 0011 USER11
12 0012 USER12
13 0013 USER13
14 0014 USER14
15 0015 USER15
16 0016 USER16
17 0017 USER17
18 0018 USER18
19 0019 USER19
20 0020 USER20
loop time = 0.027871131896973
复制代码
回复
支持
反对
使用道具
举报
显身卡
cuiy6642
cuiy6642
当前离线
积分
2
IP卡
狗仔卡
楼主
|
发表于 2008-11-11 09:29:31
|
显示全部楼层
用 PHP 直接访问 MySQL 最终耗时为:
loop time = 0.0035531520843506
还是相差了70多倍时间。
回复
支持
反对
使用道具
举报
显身卡
Hex
Hex
当前离线
积分
50179
IP卡
狗仔卡
发表于 2008-11-11 10:00:54
|
显示全部楼层
多使用查询缓存技术。
回复
支持
反对
使用道具
举报
显身卡
chaing
chaing
当前离线
积分
4
IP卡
狗仔卡
发表于 2008-11-11 10:36:17
|
显示全部楼层
测试的时候最好每次都把mysql重启下,防止缓存.
回复
支持
反对
使用道具
举报
显身卡
cuiy6642
cuiy6642
当前离线
积分
2
IP卡
狗仔卡
楼主
|
发表于 2008-11-11 11:40:05
|
显示全部楼层
重启 MySQL 后
用 CI 访问:loop time = 0.12339091300964
再重启 MySQL 后
用 PHP 直接访问:loop time = 0.11537098884583
耗时接近。
再次重启 MySQL
用 PHP 直接访问:loop time = 0.091241836547852
然后用那个CI访问(没有重启MySQL):loop time = 0.033633947372437
再用CI访问:loop time = 0.029628992080688
再用CI访问:loop time = 0.029266119003296
再来一次CI:loop time = 0.02901291847229
改用PHP直接访问(没有重启MySQL):loop time = 0.016822099685669(这样看CI访问差距不大)
再用PHP:loop time = 0.0039198398590088
再用PHP:loop time = 0.0038449764251709
再用PHP: loop time = 0.0037660598754883
再用CI: loop time = 0.031005144119263
再用CI: loop time = 0.033904075622559
再用CI: loop time = 0.029873847961426
复制代码
看来应该是 PHP 直接访问数据库利用了缓存提高效率,而CI好像没有使用缓存(不应该这样呀?)
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
3
/ 3 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
入住 CI 中国社区
本版积分规则
发表回复
回帖后跳转到最后一页