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

妖狐艹你老母 2022-03-01 03:14 1064阅读 0赞
  1. [https://blog.csdn.net/persistencegoing/article/details/84376427][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

发表评论

表情:
评论列表 (有 0 条评论,1064人围观)

还没有评论,来说两句吧...

相关阅读

    相关 sql查询优化-创建索引

    正常从客户体验角度来说,一页查询10条数据应该是毫秒级别的,但现在环境中确实一个查询7.7秒返回结果集,何况还有很多页,翻页都想放弃的感觉,这个体验实在太糟糕了。 通过工作经

    相关 mysq查询sql分析

    MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,默认是10秒 查询一下是否开启了慢查询日志 show variables like '