2013-03-19 84 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