0

以下の問題については、クエリが機能しました。しかし、200万レコードのテーブルで上記のクエリを実行すると、MySQLプロセスがCPUを100%使用しているように見えます。15分以上待っていましたが、まだクエリが実行されています。これを改善できるパフォーマンスの調整はありますか?

Mysqlサブクエリヘルプ

select
    u.website,
    sum(e.ULVolume + e.DLVolume) as volume
from mytable e
left join mytable u on u.PID = e.PID and u.event ='update'
where e.Event = 'end'
group by 1;

システムは、Intel(R)Xeon(R)CPU X3430 @ 2.40GHzCentOS5.6と8GBのRAMで実行されています。

EXPLAIN出力で更新:

*************************** 1. row ***************************
           id: 1   select_type: SIMPLE
        table: e
         type: ALL possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 2858631
        Extra: Using where; Using temporary; Using filesort
*************************** 2. row ***************************
           id: 1   select_type: SIMPLE
        table: u
         type: ALL possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 2858631
        Extra: 2 rows in set (0.00 sec)
4

2 に答える 2

3

mytable.PID 明らかなものは次のとおりです。と にインデックスを作成しますmytable.event

于 2011-08-04T23:31:56.310 に答える
1

テーブルにはどのようなインデックスがありますか?接頭辞を付けてみてEXPLAIN、インデックスが実際に使用されているかどうかを確認してください。

于 2011-08-04T23:32:30.510 に答える