我正在尝试优化需要相当一段时间的MYSQL语句。这个表运行的表是600k +,查询超过10秒。Mysql优化
SELECT DATE_FORMAT(timestamp, '%Y-%m-%d') AS date, COUNT(DISTINCT (
email
)) AS count
FROM log
WHERE timestamp > '2009-02-23'
AND timestamp < '2020-01-01'
AND TYPE = 'play'
GROUP BY date
ORDER BY date DESC
我只是索引时间戳和类型,还有一个timestamp_type(type_2)。
这里是解释结果,这个问题似乎是一个文件排序,但我不知道如何解决这个问题?
id: 1
select_type: SIMPLE
table: log
type: ref
possible_keys: type,timestamp,type_2
key: type_2
key_len: 1
ref: const
rows: 226403
Extra: Using where; Using filesort
感谢
你能表现出与SQL代码的当前indexe定义,因此没有关于他们是如何设置的怀疑。 另外,我们在谈论什么数据量? (有多少行,多少个“TYPE”,每个TYPE和时间戳有多少行?) – Brimstedt 2009-07-08 11:08:09