我有一個MySQL查詢問題,因爲它需要太多的時間(約12秒),該表具有約70,000條記錄我的MySQL查詢需要太多的時間(約12秒) - 任何建議
這裏我的查詢:
SELECT DATE(`orders`.`date`) AS `dater`,
COUNT(*) AS `amount`,
(SELECT SUM(`amount`) FROM `payment`
WHERE DATE(`dater`)=DATE(`payment`.`posted_date`)
) AS `charge`
FROM `orders`
GROUP BY `dater`
ORDER BY `dater` DESC
LIMIT 0,10
正如你可以看到有2個表 1.表:訂單 它是訂單表我們這裏有1個主柱:日期(我們在這裏需要計算每日訂單)
樣本:
--------------------
date | id
--------------------
01-01-2017 | 1
--------------------
01-01-2017 | 2
--------------------
01-02-2017 | 3
--------------------
- 表:支付: 它是金錶在這裏,我們有2個主要欄目:posted_date,量(我們需要在這裏得到量字段的總和爲每天)
樣品:
--------------------
posted_date | amount
--------------------
01-01-2017 | 100
--------------------
01-01-2017 | 50
--------------------
01-02-2017 | 200
--------------------
所以在結束時結果應該[日期,金額,收費]
肯定在更短的時間,因爲它是不可能去這12個秒時:d
我看到的問題是在這個內部SELECT:
(SELECT SUM(`amount`) FROM `payment`
WHERE DATE(`dater`)=DATE(`payment`.`posted_date`)
) AS `charge`
我怎樣才能避免犯SELECT內的任何建議SELECT查詢?
也許考慮索引你的數據表 –
'COUNT(*)'也是一個問題。它必須經過你的整個表格,如果它沒有正確的索引,它會變得更糟。 –
我們可以看到你的模式嗎? –