Home >Backend Development >PHP Tutorial >php的短连接,短进程有什么缺点

php的短连接,短进程有什么缺点

WBOY
WBOYOriginal
2016-06-06 20:22:161255browse

比如每个页面结束,数据库连接就关了,下个页面需要重新打开数据库,重新连接,获取数据。这样比起那些可以持久过程,长连接的网站,有什么重大缺点和小优点呢。

回复内容:

比如每个页面结束,数据库连接就关了,下个页面需要重新打开数据库,重新连接,获取数据。这样比起那些可以持久过程,长连接的网站,有什么重大缺点和小优点呢。

首先,不明说是什么数据库,那么就默认为mysql。
然后,web的大部分应用场景适合短链接,而不是长链接。比如你看小说,当小说当前章获取到了后,相当长一段时间用户不会出发新的链接,为何不释放掉该链接让给需要的用户呢?缺点是,反复建立释放链接,也是损耗。
至于长链接,简单的说,就与上面恰恰相反。
其实当具备了sql连接池后,会好很多。
个人愚见,抛砖引玉。

优点是简单.....

每一次连接数据库都涉及很多次 Unix System Call ,总在开闭数据库连接是极大的消耗。

对虚拟主机提供商来说,短连接是友好的.
比如虚拟主机厂商开启了100个Apache或者PHP-FPM工作进程来驱动50个虚拟主机站点,
如果1个站点对应1个到MySQL的持久连接,那么1个工作进程就有可能保持50个持久连接,
100个工作进程就是100*50=5000个持久连接,
而MySQL的最大连接数max_connections默认是151,
这5000个连接对MySQL服务器压力还是非常大的.

而对于只有单个应用的服务器来说,开启持久连接后,
一个PHP-FPM保持一个到MySQL的长连接,实现透明的"连接池",
减少每个请求都重复建立和释放连接的开销,能提升性能.

PHP FastCGI进程管理器PHP-FPM的架构
http://my.oschina.net/eechen/blog/541139

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn