在MYSQL支持的页面上加载

时间:2013-02-20 18:21:42

标签: php mysql caching indexing load-testing

每次加载时,我都有一个页面可以对2个不同的MYSQL表进行4次SQL调用(2次SELECT,1次INSERT和UPDATE)。

页面在PHP中编码,没有任何缓存。我希望每个表的大小增长到大约30,000行,并且没有进行负载测试。 SELECT查询每次查询最多可以拉5行。

我可以做些什么来防止数据库在过多负载下崩溃。是否会在表格中添加与我的查询中引用的列相对应的索引?

1 个答案:

答案 0 :(得分:2)

首先,30,000行不是很多数据;数据库应该能够轻松处理这么多。

如果SELECT是重复的,那么您应该启用的查询缓存可能会缓存它们,因此这些缓存的负载可以忽略不计。您应该几乎总是在要过滤和排序的列上有索引,因此请确保您的查询使用索引。

如果您不需要立即INSERT的数据,可以使用INSERT DELAYED,它将排队插入,直到表未使用并同时插入所有等待的行。除非您期望每秒始终有多个INSERT秒,否则使用INSERT DELAYED可能不会产生明显的差异。

确保UPDATE也使用索引。

更具体地说,我们需要更多信息,比如数据库和代码的结构。