查询占用100%CPU,即使在6小时后也没有完成

时间:2011-08-04 23:28:19

标签: mysql performance tweak

对于下面的问题,我得到了查询。但是,当我在具有200万条记录的表上运行上述查询时,MySQL进程似乎以100%的利用率占用了CPU。我一直在等待超过15分钟,但查询仍在运行。是否有任何性能调整可以改善这一点?

Mysql subquery help

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.40GHz CentOS 5.6,内存为8GB。

使用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)

2 个答案:

答案 0 :(得分:3)

显而易见的是:在mytable.PID mytable.event上创建索引。

答案 1 :(得分:1)

你的桌子里有哪些指数?尝试预先加EXPLAIN,看看是否实际使用了索引。