查询,跟分开查询(这里的分开查询做了优化,因为只有100条消息,所以只需要一次性查出100条即可)
join查询在1.4-4秒之间,而分开查询也在1.5-3.4秒之间,也没有更快
原理解析:
在mysql...数据总量80万,每次查少量数据/每次查大量数据
在关联需求中,影响速度的因素为:
1:查询数据量,数据量越大,传输带宽越大,则越慢,本文使用的是内网环境,可极大避免此问题
2:查询索引,命中索引并使用索引之后速度则快...,当使用join,order by,group by等sql语句时,会使得mysql查询完数据之后还需要对数据进行拼装再返回,数据越大,逻辑越复杂,则查询越慢
既然已经有了3点因素,那我们来看第一个案例...join方案几乎一致
注:本身mysql原生查询,应该是游标式while循环获取,本文使用的foreach其实在原生查询中,可以省略好几个步骤,应该是分开查询更快
第二个案例:
每次查询10条,1对多关联...1:join如果逻辑太多,代码将非常难懂
2:join如果太多,对于这条sql 的索引优化将会变得更难
3:join的sql复杂,可读性差,同时由于sql复杂,很难被mysql缓存
4:分开查询的sql