首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql如何处理现实世界中的海量连接?

mysql如何处理现实世界中的海量连接?
EN

Stack Overflow用户
提问于 2012-06-27 02:29:44
回答 3查看 4.2K关注 0票数 0

我已经对此研究了一段时间,但没有得到令人信服的答案。

在mysql教程中,默认的连接数不到200,并且它说只要你有足够的资源,Linux机器上的max_connection_num就可以设置为2000。我认为这个数字在实际部署中是远远不够的,因为可能会有数百万人同时访问您的网站。

有几篇文章讨论了如何优化以减少每个查询的时间成本。但他们都没有告诉我这个问题是如何产生的。我认为必须有某种机制,如队列,以防止大规模连接同时发生。否则,你最终会得到"too connection“异常。

有人在这个领域有一些专业知识吗?谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-27 04:44:40

有几个选项。

您提到的

  1. Connection pooling
  2. :队列。如果同时连接的客户端太多,那么应用层应该处理这个异常,让请求休眠一小段时间,然后重试。在通过replication和/或clustering

平衡的高流量environment.

  • Load中,通常应该禁止持续超过几秒的请求
票数 2
EN

Stack Overflow用户

发布于 2012-06-27 02:38:14

通常,您的应用程序应该重用已经建立的连接。但是,您选择用来实现应用程序的语言会带来一些限制。如果你使用Java或.Net,你可以有一个连接池。对于PHP则不是这样,你可以检查this discussion

票数 0
EN

Stack Overflow用户

发布于 2012-06-27 02:39:31

如果超过了max_connection_num,就会出现连接太多的错误。但是如果你的web服务器上同时有一百万个用户,你无论如何都不能用一台服务器来处理,一百万个并发连接确实需要一个非常大的服务器场来处理。

但是,数据库的客户端是webapp,该webapp通常通过称为connection pool的抽象连接到数据库,只要所有数据库连接都通过相同的池,它就会限制客户端到数据库的连接数量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11213743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档