我正在实现一个应用程序,该应用程序将有许多客户端从我的will服务器查询大量小数据包。现在我不确定是否要使用到数据库的持久数据连接。数据库目前与but服务器在同一系统上,可以通过套接字连接,但这种情况可能会在不久的将来发生变化。
据我所知,在PHP之前的几个版本中,mysqli_pconnect被删除了,因为它的行为不太理想。与此同时,它似乎又回来了。
根据我的场景,我想我没有其他机会处理每分钟数千个查询,而是有大量的持久连接和MySQL配置,每个连接只保留很少的资源,对吧?
感谢您的投入!
发布于 2010-08-30 17:32:12
你测试它的时候发生了什么?
有了这个世界上的nest will,你没有实际的方法来传达人们所需的所有信息,以便在SO响应中提供一个明确的答案。然而,通常建立mysql连接的开销很小,特别是当它与数据库客户端(在本例中为very服务器)驻留在同一系统上时。如果您使用文件系统而不是网络套接字,则开销甚至更少。
因此,我建议将所有数据库调用抽象化,以便您可以轻松地在连接类型之间切换,但编写系统以使用按需连接,并确保您的代码在实际情况下尽快显式释放连接-然后看看它的行为。
结果表明,C.
发布于 2010-08-30 17:09:26
Are PHP persistant connections evil?
问题是,在主机“Apache”和主机“MySQL”之间只能有那么多活动的连接。
持续的连接通常会给你带来问题,因为你达到了最大连接数。此外,在您的情况下,它不会带来很大的好处,因为您的数据库服务器在同一主机上。现在让它保持正常的连接。
发布于 2010-08-30 17:43:12
正如他们所说,您的使用里程可能会有所不同,但我从来没有从MySQL和Oracle (包括ODBC和OCI8)使用持久连接的良好体验。每次我测试它时,系统都无法重用连接。在高负载的情况下,当我有数百个空闲连接时,我最终会达到上限。
所以我的建议是,你实际尝试一下,看看你的设置是否正确地重用了连接。如果它不能像预期的那样工作,无论如何也不会有太大的损失:与其他数据库管理系统相比,打开MySQL连接并不是特别昂贵。
此外,不要忘记在适当的时候重置所有相关的设置(无论您更改了什么会话值,它都会等待您下次建立连接并重新使用该连接)。
https://stackoverflow.com/questions/3599110
复制相似问题