我有以下查詢:我應該使用CREATE VIEW,而不是全部加入時間
SELECT t.*, a.hits AS ahits
FROM t, a
WHERE (t.TRACK LIKE 'xxx')
AND a.A_ID = t.A_ID
ORDER BY t.hits DESC, a.hits DESC
它運行非常頻繁。表t
有大約15M +行,a
有大約3M +行。
當我在上面的查詢上做了EXPLAIN
時,我收到一條消息說它總是創建一個臨時表。我注意到基於上述查詢創建臨時表需要相當長的一段時間。而且,這樣做很多時間。
因此,我想知道如果我使用上面創建一個視圖說:
CREATE VIEW v_t_a
SELECT t.*, a.hits AS ahits
FROM t, a
WHERE a.A_ID = t.A_ID
而且我的代碼更改爲:
SELECT * FROM v_t_a WHERE TRACK LIKE 'xxx' ORDER BY hits DESC, ahits DESC
它會提高性能?它會刪除創建臨時表時間嗎?
非常感謝您的建議!
感謝您對Ramandeep的意見。 – 2012-03-12 07:37:53
隨時.. !!! :) – 2012-03-12 08:10:02