2011-09-13 20 views
0

私は理由は分かりませんが、MYSQLはCPUに非常に大きな負荷を与えます。 データベースを1秒間に何度も更新しなければならず、ユーザーベースが増えています。MYSQLはCPUの100%を使います。遅いクエリ

それは最初は大丈夫だったが、CPU負荷は日々増加となりました

ここでは、ログからスロークエリです:

*Query_time: 4.182654 Lock_time: 0.000070 Rows_sent: 0 Rows_examined: 0 
SET timestamp=1315908025; 
UPDATE Stats SET Time = 1315908020 WHERE Domain = 'facebook.com';* 

なぜ、このようなクエリがとても遅いのでしょうか? クエリの処理速度が遅いのですか?

私は行に間違ったタイプを選んだのでしょうか?

time: int (11), Domain VARCHAR (1000) 

統計表には13k行があります。

+1

テーブルエンジンとは何ですか、また、1秒あたり何回アクセスされるのですか? –

+1

テーブルのDDLを指定してください。 –

+0

DNS名は253文字に制限されています。あなたはそこに少しのスペースを節約するかもしれません。 – MSalters

答えて

2

低速クエリの最も一般的な理由は、インデックスがないことです。 MySQLは行WHERE Domain='facebook.com'を見つけなければなりません。それはテーブルスキャンかインデックス検索ですか?

+0

13kテーブルスキャンは、1秒間に何百回もスキャンされない限り、まだ数分の1秒かかるはずです。上記の列のインデックスが不足している可能性は非常に高いですが、ストレージエンジンの設定ミスのように思えます。 –

+0

テーブルスキャンとインデックス検索の違いはわかりません。 – user775013

+0

テーブルスキャンは基本的にMySQLが各レコードを順番に調べなければならないことを意味します。インデックス検索は、バイナリツリー形式で検索できる順序リストがあることを意味します。これははるかに高速です。 – Jaydee

関連する問題