3

我正在实现一个应用程序,它将有很多客户端从我的网络服务器查询大量的小数据包。现在我不确定是否使用持久数据连接到数据库。该数据库当前与网络服务器位于同一系统上,并且可以通过套接字进行连接,但这可能会在不久的将来发生变化。

据我所知,PHP 之前的几个版本 mysqli_pconnect 已被删除,因为它表现不佳。与此同时,它似乎又回来了。

根据我的情况,我想我不会有其他机会每分钟处理数千个查询,但有大量持久连接和一个 MySQL 配置,每个连接只保留很少的资源,对吧?

感谢您的输入!

4

3 回答 3

1

PHP 持久连接是邪恶的吗?

问题是主机“Apache”和主机“MySQL”之间只能有这么多活动连接</p>

持久连接通常会出现问题,因为您达到了最大连接数。此外,在您的情况下,它并没有带来很大的好处,因为您的数据库服务器位于同一主机上。暂时保持正常连接。

于 2010-08-30T09:09:25.753 回答
1

当你测试它时发生了什么?

有了世界上的巢穴,没有实用的方法可以传达人们在 SO 响应中提供明确答案所需的所有信息。然而,建立 mysql 连接的开销通常很小,特别是如果它与数据库客户端(在本例中为 web 服务器)驻留在同一系统上。如果您使用文件系统而不是网络套接字,则开销会更少。

因此,我建议抽象所有数据库调用,以便您可以轻松地在连接类型之间切换,但编写您的系统以使用按需连接,并确保您的代码尽快显式释放连接 - 然后看看它的行为方式。

C。

于 2010-08-30T09:32:12.427 回答
1

正如他们所说,您的里程可能会有所不同,但我从未有过使用 PHP 持久连接的良好体验,包括 MySQL 和 Oracle(包括 ODBC 和 OCI8)。每次我测试它时,系统都无法重用连接。在高负载下,当我有数百个空闲连接时,我最终会达到上限。

所以我的建议是你实际尝试一下,看看你的设置是否正确地重用了连接。如果它没有按预期工作,无论如何也不会造成很大的损失:与其他 DBMS 相比,打开 MySQL 连接并不是特别昂贵。

此外,不要忘记在适当的时候重置所有相关设置(无论您更改什么会话值,它都会等待您下次建立连接并碰巧重用该连接)。

于 2010-08-30T09:43:11.987 回答