0

mysql データベースと共有プランのサイトがあります。データベースには、〜 300000 行のテーブルがあります。テーブルは〜250mbです。すべてのページで、クエリを呼び出します。

select * from table order by added limit 0,30

すべての行には、必要な 400 文字のコードを含むフィールドがあります。基本的にすべてのフィールドが必要です。数日前まではすべて問題ありませんでしたが、1 日あたりの訪問者数は 500 人と遅かったです。CPU の乱用 (1 日あたり 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 に答える