1
我有一個表中的某些事件記錄在MySQL DB中。我現在想知道哪些事件發生在最後一小時中至少有一定實體域:MySQL:ORDER BY或GROUP BY慢?
SELECT entity_id, COUNT(entity_id) number
FROM event_log
WHERE domain_id=%s AND event_type='%s' AND time>DATE_SUB(NOW(), INTERVAL 1 HOUR)
GROUP BY entity_id
ORDER BY number ASC;
這個查詢需要大約3秒一表約300.000行。有沒有辦法加速它顯着?難道我做錯了什麼?
嘗試在''時間'或更好的'domain_id,event_type,time,entity_id'上添加一個索引 – 2013-04-28 11:42:31
@ The Scrum Meister:您可以將該評論置於答案中。 (只是爲'時間'添加一個索引,將查詢速度提高了100倍...) – EricSchaefer 2013-04-28 12:02:49
像'數字'和'時間'這樣的名稱讓我很癢,因爲SQL語言不同。我會現場引用'時間'。 _(沒有批評者)_ – 2013-04-28 12:10:21