PHP-CI框架数据库连接默认是长连接,需要注意应用场景
2015-11-16 15:25
791 查看
在CI框架的数据库配置文件中$db['default'] ['pconnect'] = TRUE,永久的数据库连接是指在您的脚本结束运行时不关闭的连接。 当收到一个永久连接的请求时,PHP将检查是否已经存在一个前面已经开启的相同的永久连接, 如果存在,将直接使用这个连接;如果不存在,则建立一个新的连接。 所谓“相同”的连接是指用相同的用户名和密码到相同主机的连接。 适当的选择可以提高性能,但是如果在永久连接中使用数据表锁时,如果无法释放数据表锁,随后使用相同连接的脚本将会被永久阻塞,使得我们必须重启httpd服务或者数据库服务; 在不了解这个机制的时候就很容易导致MySql的数据库连接过多而不能及时释放; 在顺网无线项目中使用了这个机制,当用户访问过多时直接导致数据库too many connects; 当然对数据库压力和web服务器资源消耗最大的数据库应用一个是全表like操作,另外一个就是打开关闭数据库了,其实在一个站点中,无论有多少个人连接到这个站点,读取的数据库,使用的用户名、密码都是同一个。你不是主机提供商,不会为你的网站上的每一个用户单独创建一个数据库吧。只要你的网站在运行,使用长久连接就保证数据库的连接是打开的。这样可以减少服务器的压力。一方面服务器保证了你这个是已经通过登录验证的,不用每次查询用户信息库来验证用户名和密码。另一方面,你的PHP程序也可以直接执行SQL语句,减少了工作量。 因此要合理的使用短连接和长连接; 用的时候分析应用场景和性能压力测试一番。
相关文章推荐
- ftp上传图片
- PHP Socket 编程详解
- thinkjphp 模板中获取url中的action
- windows下设置计划任务自动执行PHP脚本
- windows下设置计划任务自动执行PHP脚本
- for循环的魅力-PHP(for函数比while函数更高效)
- PHP大神的十大优良习惯
- 分析和解析PHP代码的7大工具
- ftp用户权限设置
- phpexecl使用遇到的问题
- PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
- 云智慧透视宝PHP应用性能监控实现原理
- 利用MFC的CFtpConnection类实现递归下载文件夹
- PHP:文件加载
- 谈PHP中信息加密技术
- CTP综合交易平台 下单字段分析
- PHP中获取当前页面的完整URL
- PHP Yii框架之表单验证规则大全
- 用FTP4J jar包类上传文件
- php session 登录退出验证