Thinkphp中mysql两表查询用in ids还是left join(分页的情况,ids数组一般20个左右)?
大家讲道理
大家讲道理 2017-04-10 18:02:26
[PHP讨论组]

不清楚哪种解决方案好
在书上看到说是 一般都是分表查询,有利于缓存

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(4)
大家讲道理

主要看数据量,以及应用场景,数据量小情况下,俩差不多
where in()查询还是多表 left join 联合查询,哪个效率会更好点?

PHP中文网

这两个的语法使用的场景是不一样的,in是知道了id去筛选出符合你id组的记录,而left join是关联表。如果是我做分页的话,看关联的表是不是大表(几十万上百万记录),再决定是否使用left join ,即使是使用join最好explain一下看看是不是达到最优了,没有的话,看看explain结果进行优化一下。建议超大表不要join;用in的话,提取id和查询副表组装数据进入主表数据集的时候不要多重循环,效率也不见得慢到哪去。

黄舟

你这是在说一个SQL问题,使用left join 远远超过 使用in 的人。

怪我咯

最简单的办法就是用关联模型

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号