时间:2021-07-01 10:21:17 帮助过:6人阅读
$user_ids = query(select id from users);
$background = query('select * from background where uid in '.implode(',',$user_ids));
需要这样吗?直接关联不行吗,这样多一次连接,让php来join能减少数据库的压力吗?
如果是别的表,比如业务特别繁忙或业务一般繁忙的,是不是也要区分对待?
对于两个表,一般是直接关联还是分两次查出来再关联,比如用户表,用户学历表
$user_ids = query(select id from users);
$background = query('select * from background where uid in '.implode(',',$user_ids));
需要这样吗?直接关联不行吗,这样多一次连接,让php来join能减少数据库的压力吗?
如果是别的表,比如业务特别繁忙或业务一般繁忙的,是不是也要区分对待?
没测过。不过:
如果访问量够大,这样做确实能减少数据库压力,但是这样会增加复杂度,不建议过早优化。
对sql资源进行管理,设计成配置文件那样,提供占位符;
设计一个parser模块,获取参数,替换占位符;
执行查询,返回结果,也可以传入类型,对查询结果做反射处理;
联合查询比较好,毕竟分开查就进行了两次io操作