我有一個查詢,找到最近的日期時評論是在一個特定頁的文章提出:查找在MySQL最近評論日期 - 速度問題
SELECT created_on , created_by_name, created_by_id , body
FROM ac2012.acx_comments WHERE created_on IN (
SELECT MAX(created_on)
FROM ac2012.acx_comments WHERE parent_id = '642')
查詢工作,打印出最parent_id的最近評論日期爲642.
但是,此查詢大約需要4秒。這與我的大多數查詢相比平均只需要0.1秒。
我想知道 - 是否有一個原因,爲什麼它需要這麼長時間,我怎麼能讓它走得更快?例如,我認爲將其限制爲parent_id「642」將通過僅查看3個註釋行開始查詢......這應該使得created_on的最大值的計算不會很長。
任何建議,將不勝感激。或許WHERE應該放在別的地方來優化速度?
請參閱表架構這裏:https://docs.google.com/spreadsheet/pub?key=0AjkotydroXWqdHBEOHAtalJpazROaHh3R0VpM0hZSlE&output=html
喜@Daniel ,你能提供你的表格模式嗎? – Neo
在Transact-SQL中,您可以執行'SELECT TOP 1 ... FROM acx_comments WHERE ... ORDER BY created_on DESC'。只需將「TOP」轉換爲「LIMIT」,您應該適合MySQL。 –
你有關於parent_id ....的索引嗎? – alwaysLearn