需要就是一般新闻都会有很多的子类,而子类又有标签,又有精选、热门等等。
一方面要先把大类下的所有子类找出来,然后根据标签找。
` 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表没有用索引
用了索引之后 速度还是很慢
看来不是索引问题 接下来 我换种思路 本来是一对多的,现在变成多对一的形式 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,12
这样子之后性能就上来了,