我正在嘗試優化需要相當一段時間的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