0

我有一个与 mysql 数据库共享计划的站点。该数据库有一个大约 300000 行的表。该表约为 250mb。在我调用查询的每一页中:

select * from table order by added limit 0,30

在每一行中都有我需要的 400 个字符代码的字段。基本上我需要所有领域。直到几天前,一切都还好,但是每天有 500 名访客,速度很慢。现在我的网站关闭了,因为我收到了关于 cpu 滥用的警报(每天有 1000 名访问者)。在我的本地服务器中,一切都很好,没有很大的 cpu 使用率(~10%)。

我可以做些什么来为我的查询提供最佳性能?

如果我使用 VPS 计划,一切都会好起来的,或者真正的问题是我的桌子?

4

1 回答 1

0

“添加”字段是否已编入索引?如果表没有被 ORDER BY 中的字段索引,MySQL 将每次扫描整个表。通过索引你的表

ALTER TABLE `table_name` ADD INDEX `added` (`added`);

您将大大减少 CPU 使用率。

于 2013-03-19T12:38:06.953 回答