嘿,我有一個查詢需要優化。它的作品,但它的狗,表現明智。如何優化MySQL查詢(羣組和訂單)
它讀取這樣的:
SELECT *
FROM (
SELECT *
FROM views
WHERE user_id = '1'
ORDER BY
page DESC
) v
GROUP BY
v.session
我跟蹤的觀點不同的頁面,我想知道每節最高的頁面,才能知道他們已經通過點擊多遠(他們」在任何給定的會話中,都需要查看每一頁到最後)。
基本上我想要做的是在集團之前對結果進行排序。以上成本高昂,成本高昂。
任何人誰可以拍我頭如何做到這一點?多謝你們!
更新:
的解釋:
"1" "PRIMARY" "<derived2>" "ALL" \N \N \N \N "3545" "Using temporary; Using filesort"
"2" "DERIVED" "views" "index" \N "page" "5" \N "196168" "Using where"
的模式:
ID int(8) unsigned (NULL) NO PRI (NULL) auto_increment select,insert,update,references
page int(8) (NULL) YES MUL (NULL) select,insert,update,references
user_id int(8) (NULL) YES (NULL) select,insert,update,references
session int(8) (NULL) YES (NULL) select,insert,update,references
created datetime (NULL) NO select,insert,update,references
指數信息:
views 0 PRIMARY 1 ID A 196008 (NULL) (NULL) BTREE
views 1 page 1 page A 259 (NULL) (NULL) YES BTREE
請求mysql性能優化時,請始終提供以下內容。 1.查詢2. EXPLAIN查詢輸出3.爲所有適當的表顯示CREATE TABLE。謝謝。 – hobodave 2009-07-29 16:03:30
你可以在你的模式上發佈一些細節嗎? – Macros 2009-07-29 16:04:12