我有兩個表:posts
和categories
。 該posts table
約有360,000 lines
。MySQL查詢太慢與GROUP BY
我想只顯示每個類別的第一篇文章,按日期排序和使用分頁。
查詢:
SELECT * FROM
(SELECT * FROM posts ORDER BY date_post DESC) as temp
GROUP BY id_category ORDER BY date_post DESC
LIMIT $offset, $limit"
查詢花費大約1分鐘來加載和顯示我的網站。
我已經嘗試將MyISAM更改爲InnoDB,並使用分區沒有成功。
該網站託管的服務器是專用服務器,我認爲問題不是這樣。
任何人都有一些建議?
如果沒有太多的類別,也許最好嘗試爲每個類別寫一個查詢? – aram90 2013-03-19 17:09:18
查詢中沒有聚合函數,因此GROUP BY在此上下文中是冗餘的。也許你的意思是DISTINCT? – Strawberry 2013-03-19 17:09:38
因爲它目前爲什麼不只是使用SELECT * FROM職位作爲臨時而不是將第二個SELECT放入? – jonners99 2013-03-19 17:11:28