1.数据集需要多表查询我使用了left join 进行表关联,`outbound`表的数据大楷有几万条,以下的查询速度相当的慢,后面百度说要建索引,重新建索引太麻烦了,于是我换了一种思路
SELECT IFNULL(SUM(`finishnum`),0) as turnoverNum FROM `outbound_item` oi
LEFT JOIN `outbound` o ON oi.`outboundcode`=o.`outboundCode`
LEFT JOIN `appliance` a ON a.`applianceNo`=oi.`applianceNo`
WHERE o.`finishDate` LIKE CONCAT('%','2020-07','%') AND a.`applianceType`='2'
查询时间为:(我的天啦,太慢了)
2.我询问了一个大佬,他说分解去写 sql,这样效率最高,sql能不用 join 就不用,单表的查询效率是最高的,写代码执行效率绝对提升,于是把sql语句分解成入下图。
(建议:两表可以考虑用 join,三张表、包括以上就不考虑用join,具体解释可参考一下文档https://blog.csdn.net/j3T9Z7H/article/details/103193164)
SELECT IFNULL(SUM(finishnum),0) as turnoverNum
FROM outbound_item
WHERE
outboundCode
IN (SELECT outboundCode FROM outbound WHERE finishDate LIKE CONCAT('%','2020-07','%'))
AND applianceNo
IN (SELECT applianceNo FROM appliance WHERE applianceType = 2)
查询时间为:(好快呀,开心)
欢迎大家投稿,菜鸟程序员飞真顺献上。V:yqf822547775