2013-05-01 199 views
1

很長一段時間我都得到查詢在此線程Sum Multiple Row Date Difference Mysql在mysql查詢執行

現在的問題是,查詢執行時間是那麼的漫長。我嘗試用一​​些小行數據http://sqlfiddle.com/#!2/0d496/1/0。 當我嘗試在本地數據庫中執行此查詢(我的表總行大約爲200.000行)時,它就像是瘋狂的事情,因爲即使在很長時間內等待,也沒有結果。

我想問一下,這個查詢默認需要很長時間才能執行?是否有可能使其更快?怎麼樣?謝謝。

+0

你是否在較短的表格上試過這一點,看看結果是否填充? – brendosthoughts 2013-05-01 03:20:32

+0

@brendan morrison他有,請檢查他的問題中的第二個鏈接 – Patashu 2013-05-01 03:20:56

+0

我懷疑爲什麼這是慢的原因是子查詢,可能會運行一次選擇每一行。是否MySQL有分區,也許?你是在索引你的表嗎?或者,如果你爲表生成一個整數,按日期爲每個連續的行增加1,那麼索引/寫你的查詢針對這個整數?這樣你就不需要做一個子查詢來查找前一行是什麼。 – Patashu 2013-05-01 03:24:25

回答

1

嘗試增加速度到索引:

KEY LogCarIdxLogDateCarIdSpeed

然後基於C1查詢使用該索引(所以說解釋)。無法分辨sqlfiddle中的速度差異,但可能有助於全尺寸查詢。