在CI框架的数据库配置文件中$db['default'] ['pconnect'] = TRUE,永久的数据库连接是指在您的脚本结束运行时不关闭的连接。

当收到一个永久连接的请求时,PHP将检查是否已经存在一个前面已经开启的相同的永久连接,
如果存在,将直接使用这个连接;如果不存在,则建立一个新的连接。 所谓“相同”的连接是指用相同的用户名和密码到相同主机的连接。 适当的选择可以提高性能,但是如果在永久连接中使用数据表锁时,如果无法释放数据表锁,随后使用相同连接的脚本将会被永久阻塞,使得我们必须重启httpd服务或者数据库服务; 在不了解这个机制的时候就很容易导致MySql的数据库连接过多而不能及时释放;
在顺网无线项目中使用了这个机制,当用户访问过多时直接导致数据库too many connects; 当然对数据库压力和web服务器资源消耗最大的数据库应用一个是全表like操作,另外一个就是打开关闭数据库了,其实在一个站点中,无论有多少个人连接到这个站点,读取的数据库,使用的用户名、密码都是同一个。你不是主机提供商,不会为你的网站上的每一个用户单独创建一个数据库吧。只要你的网站在运行,使用长久连接就保证数据库的连接是打开的。这样可以减少服务器的压力。一方面服务器保证了你这个是已经通过登录验证的,不用每次查询用户信息库来验证用户名和密码。另一方面,你的PHP程序也可以直接执行SQL语句,减少了工作量。 因此要合理的使用短连接和长连接; 用的时候分析应用场景和性能压力测试一番。

最新文章

  1. jQuery中事件绑定到bind、live、delegate、on方法的探究
  2. sql union和union all的用法及效率
  3. 利用CAReplicatorLayer实现的加载动画
  4. maven中运行hibernate5的一些注意事项
  5. 自己动手写中文分词解析器完整教程,并对出现的问题进行探讨和解决(附完整c#代码和相关dll文件、txt文件下载)
  6. LCS(打印全路径) POJ 2264 Advanced Fruits
  7. int *(*a[5])(int, char*)
  8. thinkphp 视图模型使用分析
  9. 这样就算会了PHP么?-10
  10. 如何理解java是一个面向对象的语言?(转自Hollis的直面java)
  11. MySQL数据库表损坏后的修复方法
  12. ajax(读取json数据)
  13. linux命令之 tar
  14. Ionic Contoller类与Service类分开需要注意的问题
  15. LINUX-CUDA版本所对应的NVIDIA驱动版本号,cuda版本报错的朋友参考一下
  16. Python并发编程之线程池/进程池--concurrent.futures模块
  17. web理论知识--HTML结构及标签
  18. 【android开发】如何在Linux平台下安装JDK环境
  19. Ubuntu12.10下Vsftpd的安装
  20. Python字典使用--词频统计的GUI实现

热门文章

  1. java中 二进制 八进制 十六进制 十进制 相互转换 最简方法
  2. ElasticSearch High Level REST API【5】使用模板搜索
  3. yum仓库及配置
  4. Net core 轮子
  5. nuxt.js express模板项目虚拟目录部署问题汇总
  6. js跨域及解决办法
  7. UML类图关系模式(C++代码说明)
  8. Insertion Sort Gym - 101955C 思路+推公式
  9. django 连接MYSQL时,数据迁移时报:django.db.utils.InternalError: (1366, "Incorrect string value: '\\xE9\\x97\\xAE\\xE9\\xA2\\x98' for column 'name' at row 5")
  10. vue-cli 中引入 jq