MySQL的最大并发连接数是多少?

52

我希望为我学校的社交网站建立一个 MySQL 数据库。

我的应用程序最多可以有 10,000 个用户。最大并发 MySQL 连接数是多少?


6
足够让你不必担心。 - nathan hayfield
1
它能处理500-1000个并发连接吗? - user2075703
1
我应该使用MySQL与Hadoop还是Memcached来提高速度? - user2075703
2
MySQL 不太可能成为您的瓶颈。如果是这样,那么您需要设计更好的表和索引。不要过早优化。 - crush
2
我曾经工作的应用程序有一个连接池,拥有30个连接。它可以很好地处理4000个并发用户。我想这对你来说应该足够了。 - Slowcoder
显示剩余3条评论
3个回答

82

谢谢,但我是否应该使用像Hadoop或Memcached这样的东西来增加速度? - user2075703
因为MySQL可能会处理并发连接,但当处理如此多的连接时,它肯定会变慢。 - user2075703
17
只有在基本的MySQL设置不够用时才需要进行改进。先从简单开始,根据需要逐渐增加复杂性。连接数并不是问题所在,关键是这些连接在做什么。10,000人登录MySQL并不重要,重要的是10,000个用户运行大型复杂的内存占用查询会造成问题。而且要记住,并非所有10,000个人在同一时间都会发出数据库查询请求,可能只有(比如说)50个查询同时运行。 - Marc B
我的问题是,我有一个在线考试测试的注册页面,并使用mysql_connect函数进行数据库连接,MYSQL能够同时处理500个请求吗?如果不能,那么最好的方法是什么? - Kishan Oza
上述所描述的与此处提到的短连接有何区别?请参考:https://dev.mysql.com/blog-archive/mysql-connection-handling-and-scaling/ - Dimitris Papageorgiou

45
您可能总共有10,000个用户,但这与并发用户不同。在此上下文中,是指同时运行的脚本。
例如,如果您的访问者访问index.php,并进行数据库查询以获取一些用户详细信息,则该请求可能存活250毫秒。您可以通过仅在查询时打开和关闭MySQL连接而进一步限制这些连接的持续时间,而不是在脚本的整个过程中保持其打开。
尽管很难建立任何类型的公式来预测同时打开的连接数,但我猜测如下:
在任何给定时间,您可能最多有500个活动用户,即使您拥有10,000个用户基础。在这500个并发用户中,可能会有至多10-20个并发请求正在同时进行。
这意味着,您实际上只建立了大约10-20个并发请求。
正如其他人所提到的,您在这方面无需担心。

假设有一个像Facebook这样规模的网站,并且假设没有像Memcached这样的缓存层,因此所有查询都必须命中数据库,MySQL能够处理这样的负载吗? - SexyBeast
@SexyBeast 你有没有得到任何答案或者已经有了一些理解可以分享? - Zeeshan Hassan Memon
我的理解是,如果你需要类似于谷歌自动建议这样的几乎实时响应,甚至是相对较快的响应,数据库无法处理,它会使速度慢上数个数量级。 - SexyBeast
@SexyBeast 对于这样的情况,您需要在应用程序本地进行某种类型的缓存。 - crush

1
我可以向您保证,使用非标准的索引方式来使用大型表格可以获得原始速度。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接