MySQL级联查询的优化

 

一、PHP的foreach和MySQL的in哪个执行效率高?

 

1:foreach($item as $k=>$v){
      //循环100次
      //这里使用单id查询一条数据。
   }
2:使用IN查询id IN(1,2,3,.......,100),100个id条件。

同样的结果,1个查询100次,1次查询1条数据;一个查询1次,1次查询100条数据,哪一个效率高些?


在查询效率上,是第一个快
但是在对服务器的io压力上,倾向于使用第二个。
因为一次查询就是一次mysql链接,占一个磁盘io。而且mysql一般的连接数是2000,你这一循环就一下占100个链接,虽然不会那么夸张,但是如果是高并发的情况就不容乐观了。
所以推荐使用第二个。


二、TA(TAID, b, c, d, e),TB(TBID, b, f, g, h, i, j, k),根据b字段级联查询两表,获取两表所有字段的数据,如何操作?

1.查询TA表得到多条记录

2.通过上述IN的方式查询TB表得到多条记录

3.通过使用内外两层循环的方式、通过b字段把两次查询得到的多条记录连接起来

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值