![]() |
1
34
MySQL不需要持久连接。在其他数据库(如Oracle)中,建立连接既昂贵又耗时,因此,如果您可以重新使用连接,那将是一个巨大的胜利。但是这些品牌的数据库提供连接池,这可以更好地解决这个问题。 与其他品牌的数据库相比,连接到MySQL数据库的速度很快,因此使用持久连接对MySQL的好处要比其他品牌的数据库小得多。 持久连接也有缺点。数据库服务器为每个连接分配资源,不管是否需要连接。因此,如果连接处于空闲状态,您会看到大量无用的资源。我不知道你是否能达到10000个空闲连接,但即使是几百个也是昂贵的。
连接具有状态,对于一个PHP请求来说,从先前由另一个PHP请求使用的会话“继承”信息是不合适的。例如,临时表和用户变量通常在连接关闭时清除,但如果使用持久连接,则不会清除。同样,基于会话的设置,如字符集和排序规则。也,
至少对于MySQL来说,持久连接的缺点可能超过它们的好处。还有其他更好的技术来实现高可伸缩性。 2014年3月更新: 与其他品牌的RDBMS相比,MySQL的连接速度总是很低,但它正在变得更好。 见 http://mysqlserverteam.com/improving-connectdisconnect-performance/
阅读博客了解更多详细信息和速度比较。 |
![]() |
2
4
基本上,您必须平衡创建连接与保持连接的成本。尽管MySQL在建立新连接方面速度非常快,但它仍然需要花费——线程设置时间和Web服务器的TCP/IP设置时间。在交通流量足够大的站点上,这一点很明显。不幸的是,PHP对连接的持久性没有任何控制。因此,答案是在MySQL中长时间降低空闲超时(比如减少到20秒),并增加线程缓存的大小。总之,这通常非常有效。 另一方面,您的应用程序需要尊重连接的状态。最好不要假设会话处于什么状态。如果您使用临时表,那么使用create if not exists和truncate table有很大帮助,惟一地命名它们(例如包括userid)也有很大帮助。事务的问题更大一些;但是您的代码总是可以在顶部进行回滚,以防万一。 |
![]() |
3
3
您不太可能连接到10000个。无论如何,去 official source . (强调我的)。
|
![]() |
4
3
当我们使用
但万一
|
![]() |
5
0
MySQL连接() 1.mysql_connect可用于关闭连接,每次打开和关闭数据库连接时,根据请求而定。 2.在mysql connect中每次加载页面时都会打开数据库。 3.加载页面时,每次都加载数据库 4.用于关闭连接 例子:
描述: 主机:指定主机名或IP地址,如localhost。 mysql_user:指定mysql用户名 mysql_password:指定mysql密码 mysql_-pconnect()。 1.我们使用mysql_pconcet(),它最初试图找到一个开放的持久连接。 2.mysql_pconcet()打开持久连接 3.mysql_pconnect()不支持关闭连接 4.mysql_pconnect()无法关闭连接。在这里打开到数据库的持久连接 5.这里的数据库不需要每次都连接。 6.在mysql_pconcet()中不需要每次都连接数据库。 更多细节: http://prittytimes.com/difference-between-mysql_connect-and-mysql_pconnect/ |