一个服务器能够处理多少个每秒的MySql查询?

20

我开始开发一个基于浏览器的数据库游戏。我的问题是一个常规托管(当我说常规托管时,指的是每月约7美元的共享托管)可以处理多少查询?至于这些查询,它们并不复杂(只有简单的SELECT和WHERE操作)。

那么......是10个?100个?10000个?


1
取决于服务器硬件。无论如何,属于http://serverfault.com。 - BoltClock
2
不知道该在哪里问这个... :D - XCS
4
在共享主机上,您可能会遇到由提供商强制执行的每小时查询限制。在选择托管服务之前一定要检查这一点。 - Mchl
3个回答

13

这完全取决于服务器硬件,其缓存能力和配置以及用于非易失性存储的硬件类型(例如,具有主轴的硬盘RAID阵列或SSD?),更不用说查询和查询的数据库类型,包括:

  • 连接数
  • 索引
  • 被查询表中行数
  • 结果集大小
  • 并发负载
  • 等等...

如果不知道所有这些因素,就无法估计性能。最好的估计来自实际分析,在正常运行条件下进行,并使用实际呈现的查询类型。


一个估计?我的意思是有多少用户可以注册并玩游戏。(如果有x个用户,我会有像x行的5个表)。查询是简单的SELECT WHERE类型,服务器是普通托管公司提供的。 - XCS
2
这远远不足以回答这个问题。有很多硬件和软件因素需要考虑。你最好的选择不是问问题,而是用你的负载来测量实际性能(即进行分析)。 - Michael Goldshteyn

13

他的一篇文章中,Yoshinori Matsunobu声称使用SQL可以达到每秒105,000次查询,使用本地的InnoDBAPI可以达到每秒750,000次查询。

所有的查询都是简单的PK查找。

在共享主机上,这些数字当然会低得多。当然,确切的数字取决于共享主机的情况。


1

许多因素可以影响数据库的响应时间。硬件、应用程序配置(mysql默认情况下性能不佳)以及最后但并非最不重要的是您的编码!

糟糕的查询语句会使应用程序感觉缓慢和迟钝。例如,在代码中使用count(*),或者在数据库上没有索引等非常微小的例子,都会随着数据集的增长而影响您的数据库响应时间。


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