• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql查询效率比较解决思路

mysql 搞代码 7年前 (2018-06-04) 202次浏览 已收录 0个评论

mysql查询效率比较
有一个表用来存储N多文章,每篇文章都有一个id(主键)和一个类别属性class_id(已建索引),现在我知道一篇文章的id,想找到表中所有与之类别相同的文章,可以有三种sql来查询
1、sql1 = "select class_id from t_articles where id=$id";
  先查询得到class_id
  sql2 = "select id from t_articles where class_id=$class_id"
2、sql = "select id from t_article where class_id=(select class_id from t_articles)"
3、sql = "select t1.id from t_articles as t1,t_articles as t2 where t1.class_id=t2.class_id and t2.id=$id"

请问这三种方法中哪种查询效率最高呢

——解决方案——————–
mysql中1 3效率一样,都没问题 2是禁止使用的
——解决方案——————–
MySQL优化select语句你可以参考’MYSQL5.1 CHM版中文帮助文档.chm’

1.去除不必要的括号:
 ((a AND b) AND c OR (((a AND b) AND (c AND d))))
->(a AND b AND c) OR (a AND b AND c AND d)

2.常量重叠:
· (a<b AND b=c) AND a=5
· -> b>5 AND b=c AND a=5

3.去除常量条件(由于常量重叠需要):
·(B>=5 AND B=5) OR (B=6 AND 5=5) OR (B=7 AND 5=6)
· -> B=5 OR B=6
——解决方案——————–
1,比较好,先在程序端变量一次结果,在查询,建议使用
2,子语句查询,效率低,并且完全不走索引,数据量大时,查询会很慢,不建议使用
3,连表查询效率也可行,数据量大时,建议用left join来连表


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql查询效率比较解决思路
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址