为何一加载database类,响应速度变慢许多
本帖最后由 fzzlee2k 于 2016-9-18 20:25 编辑小弟初学框架,选择了CI, 现遇到一些麻烦, 需要指导.
目前正用CI开发一ERP系统, 越写越发现速度极慢, 一开始以为是整合smarty的后果.
如下图
http://codeigniter.org.cn/forums/data/attachment/album/201609/17/200706sfv9vq2vu9u0ud8v.png(响应速度>24s)
后我下载了CI的3.0.6.1原始文件进行测试, 发现, 只要向config中的autoload.php文件, 添加自动加载database, 页面响应速度就会下降. 请问是否正常?
未加载database前: Page rendered in 0.0425 seconds. CodeIgniter Version 3.0.6
加载database之后: Page rendered in 1.0991 seconds. CodeIgniter Version 3.0.6
------------------------------------------------
$autoload['libraries'] = array('database');
问题已解决. 原因在于PHP5.3版本的改动.
以下是原因与解决方法, 給之后学习的同学们. 不要再掉入这个坑...
---------------------------------------------------------
响应时间过长的原因便在于PHP 5.3连接数据库的方式有所改变。目前我们配置数据库信息时都类似这样的“$dbhost=‘localhost’ ”;这本身是没有问题的,只是PHP 5.3会考虑是IPv4还是IPv6,面对localhost会犹豫,因此出现响应时间过长的情况。如果你查看过服务器处理PHP的时间,你会发现处理PHP的时间很短,等待处理前的时间很长。
目前这种响应时间过长的情况只出现在IIS 7及IIS 7.5升级PHP 5.3系列版本后,至于数据库版本是多少没多大影响。
方法一:上面已经说到,这是因为PHP 5.3在面对数据库配置信息中的“localhost”会犹豫,因此在安装网站的时候直接把数据库服务器地址改名为“127.0.0.1”.
方法二:打开“%systemroot%\System32\drivers\etc\hosts”这个文件,”# 127.0.0.1 localhost” ,把前面的# 去掉, 也就是取消注释.这样连接数据库的时候,填写localhost就会自动识别成127.0.0.1了.
如果修改一下控制器目录下的Welcome.php文件, 页面响应速度又要翻倍
Page rendered in 2.1530 seconds. CodeIgniter Version 3.0.6
public function index()
{
$this->db = $this->load->database('default',TRUE);
$query = $this->db->query('SELECT id FROM db_sys_udpage');
$this->load->view('welcome_message');
} 现找到原因了, 配置环境问题, 但问题根源还在研究中.
出问题的配置是
服务器: 127.0.0.1 via TCP/IP
服务器版本: 5.5.15-log
协议版本: 10
用户: root@localhost
MySQL 字符集: UTF-8 Unicode (utf8)
Apache/2.2.19 (Win32) PHP/5.3.8
MySQL 客户端版本: mysqlnd 5.0.8-dev - 20102224 - $Revision: 310735 $
PHP 扩展: mysqli
正常的配置环境是:
服务器: localhost via TCP/IP
服务器版本: 5.1.30-community
Protocol version: 10
用户: root@localhost
MySQL 字符集: UTF-8 Unicode (utf8)
Apache/2.2.11 (Win32) PHP/5.2.8
MySQL client version: 5.0.51a
PHP extension: mysqli
---------------------------------------------------
致于为什么我不直接选择后者, 好像是因为CI3对PHP和mysql的版本有作要求... :Q 现发现, 同样的Apache和MYSQL版本下, PHP5.2和PHP5.3或5.4有数十秒的响应速度差距... 到底是为啥子, 是否有高手可以解释@hex :victory:
页:
[1]