我在 MySQL 数据库中有一个表,其中记录了某些事件。我现在想知道某个实体域在过去一小时内发生的事件最少:
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;
这个查询在一个大约有 300.000 行的表上大约需要 3 秒。有没有办法显着加快速度?我做错了什么吗?
最佳答案
编辑表并在 domain_id、event_type 上创建索引。
关于MySQL:ORDER BY 或 GROUP BY 慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16262474/