一次慢SQL查询与多次SQL查询比较

版权声明:本人原创,转载需说明文章出处     https://blog.csdn.net/persistencegoing/article/details/88717752

        https://blog.csdn.net/persistencegoing/article/details/84376427

首先考虑业务场景是否有强一致性要求。其次,大多数情况下,我觉得一个一个查出来整合会效率更高。原因如下:

1,一般页面展示查询,为了完成整体目标而分次查询,必要的情况下页面懒加载效果更好,总次数也不会太多。

2,分次查询,有利于数据库自动使用到索引,会提高查询效率

3,一般单表查询,对于业务系统和 orm 框架来说,很多是有缓存的,其实查的是缓存,效率更高,而多表联合查询,一般会禁用这个级别的缓存(因为缓存了可能因为其它位置修改其中一个表的数据而导致缓存更新不了,导致查询出错误数据),就会导致联合查询更慢。

4,联合查询的sql语句,大多数在查询语法过程中,总数据处理量会变成多表的乘积。总处理数据量是 n*m*...,那么根本就快不起来。而单表查几条,参与运算的数据量就是主数据加几条关联数据。

5,其实平常有连接池复用,不会有太多明显的多次连接开销。

6,在我做的系统里面,背慢锅的都是JOIN;

7,其实在ORM框架来看,JOIN产生了中间结果,竟不是A也不是B而是AB混合体,因此缓存怎么搞(不用缓存了)所以还是各查各的吧,然后在应用里面进行数据处理。

8,单查询更适合存缓存(在系统启动的时候就可以单缓存预热预存)

综上,在大多数情况下,实际上关联的复杂 sql 查询,在整体应用层面,会是个差劲的选择。

希望大家关注我一波,防止以后迷路,有需要的可以加群讨论互相学习java ,学习路线探讨,经验分享与java求职     

群号:721 515 304

猜你喜欢

转载自blog.csdn.net/persistencegoing/article/details/88717752