请数据大虾帮忙优化一下sql

edisonli 2012-12-14 03:48:37
SELECT info.id,info.IsTop,info.IsNew,info.Title,info.TitleColor,info.TitleBold,info.IsLink,info.Url,info.Thumb,cate.id as cateid,cate.name as catename FROM article info inner join article_relate as relate on relate.id=info.id and relate.CateID in (20) inner join category as cate on cate.id=relate.CateID WHERE ( info.status = 1 ) ORDER BY info.IsTop desc,info.sort desc,info.UpdateTime desc,info.PostTime desc LIMIT 12

其中where、on和order用到的字段都已经做了索引了。数据量也不是太大,几万条,结果用了0.400163s,请大虾帮忙优化一下。
...全文
167 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
edisonli 2012-12-21
  • 打赏
  • 举报
回复
大哥,不是的哦
回复的时候图片传掉了

blizzf99 2012-12-21
  • 打赏
  • 举报
回复
SELECT info.id,info.IsTop,info.IsNew,info.Title,info.TitleColor,info.TitleBold,info.IsLink,info.Url,info.Thumb,cate.id as cateid,cate.name as catename FROM (article info inner join article_relate as relate on relate.id=info.id and relate.CateID<=20 and info.status = 1) inner join category as cate on cate.id=relate.CateID ORDER BY info.IsTop desc,info.sort desc,info.UpdateTime desc,info.PostTime desc LIMIT 12 这样看看~~
ACMAIN_CHM 2012-12-20
  • 打赏
  • 举报
回复
引用 1 楼 ACMAIN_CHM 的回复:
贴出你的 explain, show index 以供分析。
不愿意贴 show index ?
edisonli 2012-12-20
  • 打赏
  • 举报
回复
EXPLAIN SELECT info.id, info.IsTop, info.IsNew, info.Title, info.TitleColor, info.TitleBold, info.IsLink, info.Url, info.Thumb, info.Template, relate.CateID AS cateid, `UpdateTime`
FROM egov_article info
INNER JOIN egov_article_relate AS relate ON relate.id = info.id
AND relate.CateID
IN ( 93 )
WHERE (
info.status =1
)
ORDER BY info.IsTop DESC , info.sort DESC , info.UpdateTime DESC
LIMIT 0 , 20


ACMAIN_CHM 2012-12-15
  • 打赏
  • 举报
回复
贴出你的 explain, show index 以供分析。
Rotel-刘志东 2012-12-15
  • 打赏
  • 举报
回复
去掉order by 后面的排序试一试。

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧