Redis缓存与异步请求多个sql的性能问题

本文对比了一次异步提交多个SQL与多次异步提交单个SQL的性能,并探讨了加入Redis缓存后的效果。结果显示,对于大量SQL查询,单次异步提交结合缓存更为高效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目上需求一个异步的批量sql请求。使用了两种方式,一种是一个异步提交,后台处理多个sql后返回。另一种是多个异步提交,分别处理一个sql。
下面来看两种请求的性能。

单个异步提交处理多个sql ##这里写图片描述

通过谷歌的开发工具,可以看出。一个异步请求多个sql(22个)花费了将近40秒的时间。

使用多个异步请求

这里写图片描述
多个异步同时请求发现,一次完整的页面请求到返回数据结束。只花费不到15秒。
原来,异步提交的时候是一种批量提交(多个异步同时提交)。因这种提交方式,sql得以并行查询。所以效率上有提高。
因此,当需要异步请求多个sql时,可以选择多个异步来提交。

下面再来看一下使用redis缓存之后的效果

单个异步提交处理多个sql(缓存处理)

这里写图片描述
从开发这工具这里可以得知,加了缓存之后的单个异步提交。性能优化明显,整个页面请求结束只花费1.2秒。

使用多个异步请求(缓存处理)

这里写图片描述
多个异步请求加缓存优化后,效果没有单个异步请求的明显。整个页面请求下需要2秒的时间。(这里请求量不是很多,如果量大,可能效果会更差)
原来,加了缓存之后。性能上的消耗,从sql查询转换成了redis的读取。多次读取redis仍需要花费一些时间(当然,跟sql查询相比较这点时间可以忽略不计)
所以,在异步请求上加缓存,还需考虑业务需求。如果数据不需要经常刷新,还是选择一个异步请求多个sql的方式比较好。(前提是,请求的sql量大)。如果数据需要经常刷新,或者有时候需要人工来刷新一下,那么还是选择多个异步请求比较好,毕竟人工刷新之后等40秒才加载出数据真能让人崩溃。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值