对于下面的问题,我得到了查询。但是,当我在具有200万条记录的表上运行上述查询时,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;
系统正在运行Intel(R)Xeon(R)CPU X3430 @ 2.40GHz CentOS 5.6,内存为8GB。
*************************** 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)
答案 0 :(得分:3)
显而易见的是:在mytable.PID
和 mytable.event
上创建索引。
答案 1 :(得分:1)
你的桌子里有哪些指数?尝试预先加EXPLAIN
,看看是否实际使用了索引。