2013-03-19 59 views
0

我有一个与mysql数据库共享计划的网站。数据库有一个〜300000行的表格。桌子是〜250MB。在每一页我打电话查询:mysql php cpu滥用

select * from table order by added limit 0,30 

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

我能做些什么来使我的查询达到最佳性能?

如果我去VPS计划一切都会好的或真正的问题是我的表?

回答

0

被“添加”字段索引?如果表没有被ORDER BY中的字段索引,MySQL将每次扫描整个表。通过索引您的表格

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

您将显着减少cpu使用量。

+0

是的。已添加索引。该表是myisam,我使用pdo来执行查询。 – bill 2013-03-19 12:46:01

+0

我在本地服务器和主机服务器上运行解释,我有很好的时光。 – bill 2013-03-19 12:49:17