0

我的应用程序平均有 2000 个在线用户,这是一个非常高的页面加载数量。我的问题是在每个页面加载中我可以执行多少个 mysql 查询?因为我的应用程序需要加载大量数据。

我的数据库有可能崩溃吗?还是我的服务器?

_ ____ SOME INFO _ ____
内存限制:60Mb
并行进程:15
脚本执行时间:30 seg
DB:MySQL5 (1Gb)

结构:在结构中,所有的表都很好地相互连接。Allmowst 95% 的字段是 INT 类型(与 FOREIGN 和 PRIMARY 键相关)。有14张桌子。总共有 32 个 INT 字段和 6 个 TEXT 字段。

如果我无法在我的服务器上安装应用程序怎么办,还有其他方法可以缓存我的数据吗?

4

2 回答 2

1

如果你有这样的负载,你可能应该开始考虑设置某种缓存 - 所以请求只会命中 DB 一次。

我的选择是Varnish

如果您有部分动态内容,例如与用户相关的数据,您可以将其与Edge Side Includes一起使用。

此外,尝试通过聚合选择条件来尽可能少地优化您的查询。例如,首先 - 收集ids你需要选择的所有内容,然后 - 做SELECT * FROM table WHERE id IN (...)

之后 - 您将能够在服务器端使用结果,而无需打扰数据库


编辑

如果您无法在主机上安装任何应用程序 - 那么您应该继续使用一个请求获取尽可能多的数据,然后 - 使用数组。

并且拥有索引字段也很重要- 这将加快您的查询速度。

于 2012-08-02T11:28:48.760 回答
1

对于这样的负载,您可能希望在应用程序和 MySQL 服务器之间设置具有复制和负载平衡器的多台服务器,以在多个实例之间分配读取负载(并考虑缓存和优化您的查询,如 @thecatontheflat 所建议的那样)。它还有助于提高可用性(当一台数据库服务器关闭时,其他人可能会分担它的工作)

于 2012-08-02T11:42:00.413 回答