mysqljoin快还是内存循环

mysqljoin快还是内存循环,第1张

在MySQL中,根据查询的复杂程度,使用内存循环或者MySQL Join可以有效提高查询效率。内存循环是指在MySQL中使用内存中的数据进行循环,而MySQL Join是指在MySQL中使用多个表之间的连接来查询数据。

内存循环的优点是可以更快地查询数据,因为它只需要在内存中进行循环,而不需要在数据库中进行查询。但是,它的缺点是只能处理少量数据,而且它只能处理简单的查询,不能处理复杂的查询。

MySQL Join的优点是可以处理复杂的查询,因为它可以在多个表之间进行连接,从而查询出更多的数据。但是,它的缺点是查询效率较低,因为它需要在数据库中进行查询,而不是在内存中进行查询。

总的来说,在MySQL中,根据查询的复杂程度,使用内存循环或者MySQL Join可以有效提高查询效率。

先拆开看,select

*

from

a

left

join

b

on

条件,这个过程时先查询a表所有数据,然后根据on条件查询b表数据,最后加到查询a表的结果里面,所以在a表数据小于b表数据的情况下a

left

join

b比b

left

join

a

快,前提时有索引,三个表join,先看前两个表,就是aUbUc的关系,懂了吧!最后提醒一句如果关联表没有索引最好放最前面,效率会快一点!以上全部来自工作实践!

你这个需求,就是N个表的各自SUM求和,无论用什么语句,从效率上是没法提高的,因为数据运算没法避免。

给你几个参考建议:

左连接是没有必要的,你需要的其实就是不同表各自的sum,应该各自查询就好了

分开语句写,语句更精简

这样的需求,最好使用存储过程和循环语句,在需求上可以更灵活,可以查询任意天数和任意起始日期的数据

当数据量很多(天数积累),并且查询比较频繁的时候,应该引入“中间表”或“临时表”,表中每条记录记录一天的sum值(可以通过存储过程或者定时任务维护),这样再次查询会更有效率。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6149785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存