用explain 對sql語句進行優化 建議用多對一的方式查詢

須要就是通常新聞都會有不少的子類,而子類又有標籤,又有精選、熱門等等。性能

一方面要先把大類下的全部子類找出來,而後根據標籤找。code

` SELECT * FROM w_news_list a left join w_flag_value c on a.id=c.nid WHERE a.cid IN (9,10,11,12,13,14,15,17,19,1) GROUP BY a.id ORDER BY a.id DESC LIMIT 0,12索引

` 我這裏都不到10000條記錄,執行的時候已經超過12秒了。圖片

輸入圖片說明

用了explain分析以後 發現c表沒有用索引ci

用了索引以後 速度仍是很慢it

輸入圖片說明

看來不是索引問題 接下來 我換種思路 原本是一對多的,如今變成多對一的形式 SELECT * FROM w_flag_value c left join w_news_list a on a.id=c.nid WHERE a.cid IN (9,10,11,12,13,14,15,17,19,1) GROUP BY a.id ORDER BY a.id DESC LIMIT 0,12im

這樣子以後性能就上來了,img

相關文章
相關標籤/搜索