我仍然是新來的sql和我的代碼需要太長時間才能運行。SQL查詢太長了,有沒有辦法清除代碼?
這是我的代碼
SELECT SUM(b.matchusertime)
FROM(
SELECT fulldate, realmatchid, isclanmatch
FROM go_int.int_match
WHERE (fulldate BETWEEN '2013-06-30' AND '2013-07-27') AND isclanmatch = 0
GROUP BY realmatchid)a
INNER JOIN go_int.int_match_user b
ON b.realmatchid = a.realmatchid
WHERE (b.fulldate BETWEEN '2013-06-30' AND '2013-07-27')
什麼,我試圖做的,是採取從匹配表,該表是不是在一個戰隊匹配的用戶ID和與之相匹配到match_user表中查找出的總持續時間的非氏族比賽。
但每次我運行查詢時,它需要像45分鐘以上犯規還給我結果是因爲超時問題等
表格有多大?你使用的是哪個數據庫?你有什麼指標在桌子上? –
這些表格非常龐大,超過500,000行。 匹配可能有大約8列,對於匹配用戶,它有大約15列。 – user2129608
不知道你當前的索引和你正在使用的數據庫以及查詢的查詢計劃,任何關於性能的提示都只是猜測。 –