对于下面的问题,我让查询正常工作。但是,当我在一个有两百万条记录的表上运行上述查询时,MySQL进程似乎占用了100%的CPU。我已经等待了超过15分钟,但查询仍在运行。是否有任何性能调整可以改善这一点?
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;系统运行英特尔(R)至强(R) CPU X3430 @2.40 RAM 5.6,内存为8 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)发布于 2011-08-05 07:32:31
您的表中有哪些索引?尝试添加一个EXPLAIN前缀,以便查看是否实际使用了索引。
发布于 2011-08-05 07:31:56
最明显的一个是:在mytable.PID和mytable.event上创建索引。
https://stackoverflow.com/questions/6949814
复制相似问题