CI的数据库连接默认为长连接,有什么好处?
本帖最后由 visvoy 于 2010-6-24 14:33 编辑不理解CI的数据库连接默认为长连接?
引http://codeigniter.org.cn/forums/thread-2842-1-1.html
在CI的数据库配置文件中默认的一项 数据库连接是长连接$db['default'] ['pconnect'] = TRUE;,不知有什么好处?
查看资料说,永久的数据库连接是指在您的脚本结束运行时不关闭的连接。当收到一个永久连接的请求时。 PHP 将检查是否已经存在一个(前面已经开启的)相同的永久连接。如果存在,将直接使用这个连接;如果不存在,则建立一个新的连接。所谓“相同”的连接是指用相同的用户名和密码到相同主机的连接。如在永久连接中使用数据表锁时,如果脚本不管什么原因无法释放该数据表锁,其随后使用相同连接的脚本将会被永久的阻塞,使得您需要重新启动 httpd 服务或者数据库服务。
这样很容易导致MYSQL的数据库连接过多而不能及时释放掉 P 链接到底是有好处还是有坏处,要看具体应用和服务器环境。
如果 P 链接一无是处,为什么 PHP 还要有 mysql_pconnect 函数呢?这就说明其在某些场合是会提高性能的。 其实在一个站点中,无论有多少个人连接到这个站点,读取的数据库,使用的用户名、密码都是同一个。你不是主机提供商,不会为你的网站上的每一个用户单独创建一个数据库吧。只要你的网站在运行,使用长久连接就保证数据库的连接是打开的。这样可以减少服务器的压力。一方面服务器保证了你这个是已经通过登录验证的,不用每次查询用户信息库来验证用户名和密码。另一方面,你的PHP程序也可以直接执行SQL语句,减少了工作量 路过,答案已有:loveliness: 对数据库压力和web服务器资源消耗最大的数据库应用,一个是全表like操作,另外一个就是打开关闭数据库了。 这个问题似乎已经讨论过了,看这个问题
http://codeigniter.org.cn/forums/redirect.php?goto=findpost&ptid=5683&pid=26277&fromuid=2748 看了很多方面对pconnect的回答 貌似 都是批判他的不足
感觉CI根本没必要 用pconnect作为默认连接 曾经在一个应用中使用pconnect后来直接导致too many connects
max_connect应该是是200+
timeout大概是1000秒 bottom 发表于 2010-6-24 12:27 static/image/common/back.gif
其实在一个站点中,无论有多少个人连接到这个站点,读取的数据库,使用的用户名、密码都是同一个。你不是主 ...
这几天, VPS 因 too many connections 多次无法使用数据库. 关掉CI的pconnection选项然后重启了mysql, 用"show processlist;" 查看, 没那么多记录了.
页:
[1]