|
|
1
61
你可以把它当作一个粗略的“规则集”: 对 ,使用持久连接,如果:
不 ,如果出现以下情况,请不要使用持久连接:
使用持久连接要快得多,尤其是在通过网络访问数据库时。如果数据库在同一台机器上运行,这并没有多大的区别,但是它仍然有点快。然而,顾名思义,连接是持久的,即它保持打开状态,即使它没有被使用。 问题是,在“默认配置”中,MySQL只允许1000个并行的“开放通道”。之后,新连接将被拒绝(您可以调整此设置)。因此,如果您有20个WebServer,每个服务器上有100个客户机,并且每个客户机每小时只有一个页面访问权,那么简单的数学将向您展示您需要2000个到数据库的并行连接。那不行。 Ergo:只在有很多请求的应用程序中使用它。 |
|
|
2
9
简而言之,我的经验表明,应该尽可能避免持久的连接。 注意,mysql_close对于使用mysql_pconnect创建的连接是一个no操作(no op)。这意味着客户端无法随意关闭持久连接。当连接上的活动持续时间超过时,mysqldb服务器将关闭此类连接。 威特超时 . 如果 威特超时 如果是大值(比如30分钟),那么mysql-db-server就可以轻松到达 最大连接 极限。在这种情况下,mysql db将不接受任何未来的连接请求。 这时呼机开始发出哔哔声。 为了避免接触 最大连接 限制,使用持久连接需要仔细平衡以下变量…
所以,在充分考虑之后,pl使用持久连接。您可能不想为了从持久连接中获得的小收益而邀请复杂的运行时问题。 |
|
|
3
4
创建到数据库的连接是一项相当昂贵的操作。持久连接是个好主意。在ASP.NET和Java世界中,我们有“连接池”,这是大致相同的事情,也是一个好主意。 |
|
|
4
3
在我看来,这个问题的真正答案是任何最适合你的应用程序。我建议您使用持久连接和非持久连接对应用程序进行基准测试。 Maggie Nelson @ Objectively Oriented 8月发布的 Robert Swarthout 用一些硬数字做了一个附带的帖子。两本书都读得很好。 |
|
|
5
0
在我看来: 当使用PHP进行Web开发时,大多数连接在执行页面的整个生命周期中都是“活的”。一个持久的连接会花费你很多开销,因为你必须把它放到会话中或者类似的事情中。 99%的情况下,在页面执行结束时终止的单个非持久连接将正常工作。 另外1%的时间,你可能不应该在应用程序中使用PHP,也没有完美的解决方案。 |
|
|
6
0
我本来想问同样的问题,但我不会再问同样的问题了,我只会添加一些我发现的信息。 值得注意的是,新的mysqli扩展甚至不包括使用持久数据库连接的选项。 目前我仍在使用波斯连接,但计划在不久的将来切换到非持久连接。 |
|
|
7
0
一般来说,您有时需要使用非持久连接,并且最好有一个模式应用于DB连接设计(只要在您的上下文中使用持久连接没有什么好处)。 |