一、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字段把两次查询得到的多条记录连接起来