我已经对此研究了一段时间,但没有得到令人信服的答案。
在mysql教程中,默认的连接数不到200,并且它说只要你有足够的资源,Linux机器上的max_connection_num就可以设置为2000。我认为这个数字在实际部署中是远远不够的,因为可能会有数百万人同时访问您的网站。
有几篇文章讨论了如何优化以减少每个查询的时间成本。但他们都没有告诉我这个问题是如何产生的。我认为必须有某种机制,如队列,以防止大规模连接同时发生。否则,你最终会得到"too connection“异常。
有人在这个领域有一些专业知识吗?谢谢。
发布于 2012-06-27 04:44:40
有几个选项。
您提到的
平衡的高流量environment.
发布于 2012-06-27 02:38:14
通常,您的应用程序应该重用已经建立的连接。但是,您选择用来实现应用程序的语言会带来一些限制。如果你使用Java或.Net,你可以有一个连接池。对于PHP则不是这样,你可以检查this discussion
发布于 2012-06-27 02:39:31
如果超过了max_connection_num,就会出现连接太多的错误。但是如果你的web服务器上同时有一百万个用户,你无论如何都不能用一台服务器来处理,一百万个并发连接确实需要一个非常大的服务器场来处理。
但是,数据库的客户端是webapp,该webapp通常通过称为connection pool的抽象连接到数据库,只要所有数据库连接都通过相同的池,它就会限制客户端到数据库的连接数量。
https://stackoverflow.com/questions/11213743
复制相似问题