gpt4 book ai didi

php - mysql_connect 和 mysql_pconnect

转载 作者:IT老高 更新时间:2023-10-28 23:45:59 26 4
gpt4 key购买 nike

我有这个疑问,我在网上搜索过,答案似乎多种多样。通过 PHP 连接到数据库时,使用 mysql_pconnect 而不是 mysql_connect 更好吗?我读到 pconnect 的扩展性要好得多,但另一方面,作为一个持久连接......同时拥有 10 000 个连接,所有连接都是持久的,对我来说似乎无法扩展。

提前致谢。

最佳答案

MySQL 不需要持久连接。在其他数据库(如 Oracle)中,建立连接既昂贵又耗时,因此如果您可以重用连接,那将是一个巨大的胜利。但是这些品牌的数据库提供了连接池,可以更好地解决问题。

与其他品牌的数据库相比,与 MySQL 数据库建立连接的速度更快,因此使用持久连接对 MySQL 的好处比其他品牌的数据库要少。

持久连接也有缺点。数据库服务器为每个连接分配资源,无论这些连接是否需要。因此,如果连接处于空闲状态,您会看到大量无用的资源浪费。我不知道你是否会达到 10,000 个空闲连接,但即使是几百个也很昂贵。

连接具有状态,PHP 请求不适合从另一个 PHP 请求先前使用的 session 中“继承”信息。例如,临时表和用户变量通常会在连接关闭时被清理,但如果您使用持久连接则不会。同样基于 session 的设置,如字符集和排序规则。此外,LAST_INSERT_ID() 会报告 session 期间最后生成的 id——即使那是在之前的 PHP 请求期间。

至少对于 MySQL,持久连接的缺点可能超过了它们的好处。还有其他更好的技术可以实现高可扩展性。


2014 年 3 月更新:

与其他品牌的 RDBMS 相比,MySQL 的连接速度一直较低,但正在变得更好。

http://mysqlserverteam.com/improving-connectdisconnect-performance/

In MySQL 5.6 we started working on optimizing the code handling connects and disconnects. And this work has accelerated in MySQL 5.7. In this blog post I will first show the results we have achieved and then describe what we have done to get them.

阅读博客了解更多详细信息和速度比较。

关于php - mysql_connect 和 mysql_pconnect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/247807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com