登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
读发布!设计与部署稳定的分布式系统(第2版)笔记11_无 ...
读发布!设计与部署稳定的分布式系统(第2版)笔记11_无限长的结果集
[ 复制链接 ]
卜笑
2025-6-6 20:22:03
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
1. 无限长的结果集是导致响应缓慢的常见原因
1.1. 当违反稳态模式时,就可能产生无限长的结果集
1.2. 当调用方允许另一个系统支配调用时,就会出现一个无限长的结果集
2. 数据库突然返回500万行,而不是通常的100多行时会发生什么?
2.1. 在用户失去兴趣后的很长时间内,还在一个while循环中打转
2.2. 除非应用程序明确限制了其可以处理的结果数量,否则系统就可能会耗尽内存
3. 早期的社交媒体网站假定每个用户的连接数量将会呈现钟形曲线一样的分布,但事实上是一个幂律分布
3.1. 如果使用钟形曲线分布式关系进行测试,则永远不会期望能加载一个其关系数量比平均值多几百万倍的实体
3.2. 但是当使用幂律分布时,肯定会出现这种情况
4. 某表从不会超过1000行,但DBA发现,它位于最大系统开销查询列表之首
4.1. 高CPU使用率看起来像是垃圾回收造成的
4.2. 这个通常很小的表,当时竟然拥有超过1000万行的记录
4.2.1. 由于在开发过程中的数据集往往很小,因此应用程序开发工程师可能永远不会体验到这样的负面后果
4.3. 避免这台应用程序服务器查询中缺少LIMIT子句所造成的灾难
4.4. sql
-- Microsoft SQL ServerSELECT TOP 15 colspec FROM tablespec-- Oracle(since 8i)SELECT colspec FROM tablespecWHERE rownum <= 15-- MySQL and PostgreSQLSELECT colspec FROM tablespecLIMIT 15
复制代码
5. 解决方案
5.1. 在所有API或协议中,调用方应该始终指出准备接受的响应数目
5.2. 注意所有可能会累积无限子记录的数据库关系
5.2.1. 标准的SQL语法限定结果集的大小
5.3. 可以先对完整的结果集进行查询,但在达到最大行数后,就跳出处理循环
5.3.1. 给应用程序服务器提供一些额外的稳定性,但代价是浪费了数据库的系统容量
5.4. 使用切合实际的数据量
5.5. 在前端发送分页请求
5.6. 不要依赖数据生产者
5.6.1. 由于系统某个其他部分的作用,这个数量可能会在没有警告的情况下发生变化
5.6.2. 合理的数量只能是“零”“一”和“许多”
5.6.3. 除非单单查询某一行,否则就有可能返回太多结果
5.6.4. 要想对创建的数据量加以限制,不要依赖数据生产者
5.7. 在其他应用程序级别的协议中使用返回数量限制机制
5.7.1. 服务调用、RMI、DCOM、XML-RPC以及任何其他类型的请求-回复调用,都容易返回巨量的对象,从而消耗太多内存
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
结果
长的
无限
笔记
2版
相关帖子
读书笔记 XILINX ug1085-Zynq UltraScale+ Device
笔记 XILINX ug1085-Zynq UltraScale+ Device Technical Reference Manual
笔记 XILINX ug1085-Zynq UltraScale+ Device Technical
读书笔记 XILINX ug1137-Zynq UltraScale+ MPSoC
FFmpeg开发笔记(九十三)国产的Android开源视频编辑器EpMedia
FFmpeg开发笔记(九十三)国产的Android开源视频编辑器EpMedia
FFmpeg开发笔记(九十四)基于Kotlin的国产开源推拉流框架anyRTC
LaTeX学习笔记:学术文档排版
docker学习笔记
docker学习笔记
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
读书笔记 XILINX ug1085-Zynq UltraScale+ Device
0
732
支季雅
2025-12-13
安全
笔记 XILINX ug1085-Zynq UltraScale+ Device Technical Reference Manual
0
458
茅断卉
2025-12-13
安全
笔记 XILINX ug1085-Zynq UltraScale+ Device Technical
1
726
汇干环
2025-12-13
安全
读书笔记 XILINX ug1137-Zynq UltraScale+ MPSoC
0
773
材部
2025-12-13
业界
FFmpeg开发笔记(九十三)国产的Android开源视频编辑器EpMedia
0
565
要燥
2025-12-14
业界
FFmpeg开发笔记(九十三)国产的Android开源视频编辑器EpMedia
0
198
姜删懔
2025-12-14
业界
FFmpeg开发笔记(九十四)基于Kotlin的国产开源推拉流框架anyRTC
0
666
晾棋砷
2025-12-14
业界
LaTeX学习笔记:学术文档排版
0
235
叟澡帅
2025-12-14
安全
docker学习笔记
0
680
咒卖箴
2025-12-14
安全
docker学习笔记
0
763
汪玉珂
2025-12-14
回复
(4)
红弘丽
2025-11-23 21:07:46
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
鼓励转贴优秀软件安全工具和文档!
志灿隐
2025-12-6 21:30:46
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
很好很强大 我过来先占个楼 待编辑
窟聿湎
3 天前
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
懂技术并乐意极积无私分享的人越来越少。珍惜
缄戈
3 天前
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,试用一下
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
代码
签约作者
程序园优秀签约作者
发帖
卜笑
3 天前
关注
0
粉丝关注
25
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845357
3934307807
991123
4
xiangqian
638210
5
韶又彤
9998
6
宋子
9983
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9951
查看更多
今日好文热榜
930
.NET 10 网络堆栈深度架构解析:HTTP/3、性
924
【有手就行】LoRA:用你自己的数据来微调大
908
sqlilab —— 32关卡
422
.NET周刊【11月第3期 2025-11-16】
913
软件逆向加密视频专用播放器是如何检测到用
361
爬虫专栏:破解网站检测selenium反爬——“
833
开源项目分享:Gitee热榜项目 2025年12月第
49
意识的自反性:知者与作者之惑
680
docker学习笔记
763
docker学习笔记
683
咱们聊聊Spring循环依赖那点事儿:从“死锁
156
Python学习3
832
NCHU-数字电路模拟程序-23207332
235
LaTeX学习笔记:学术文档排版
219
昆明黄金店推荐:如何甄选“价值平权”的黄
938
微信支付集成_JSAPI
882
【AI编程】5分钟用AI复刻有BOSS战的《坦克
627
紧跟材料趋势,深耕专业工艺:上海芮生建设
666
FFmpeg开发笔记(九十四)基于Kotlin的国产
743
昆明旅游打卡必去:逛南亚风情园,别错过廖