0
嘿傢伙我有一個關於sql性能的快速問題。我有一個非常非常大的表,它永遠運行下面的查詢,請注意,有一個與時間戳列mysql tunning時間戳性能?
select name,emails,
count(*) as cnt
from table
where date(timestamp) between '2016-01-20' and '2016-02-3'
and name is not null
group by 1,2;
所以,我的朋友建議使用下面這個查詢:
select name,emails,
count(*) as cnt
from table
where timestamp between date_sub(curdate(), interval 14 day)
and date_add(curdate(), interval 1 day)
and name is not null
group by 1,2;
而且這需要更少的時間來運行。爲什麼?這兩個時間函數有什麼區別? 還有另一種更快的運行方式嗎?像索引?有人可以向我解釋mysql如何運行?非常感謝!
在我的文章中也包含了對這兩個查詢的解釋以及對於這些問題的創建表語句 – Shadow
檢查原因... –