保存成功
订阅成功
保存失败,请重试
提交成功

如何正确使用 MySQL 的流式查询

¥9会员免费看
加多
4.4
严选 Chat了解严选标准

MySQL 是目前使用比较广泛的关系型数据库,而从数据库里面根据条件查询数据到内存的情况想必大家在日常项目实践中都有使用。

当指定条件的数据量特别大时候一般是通过分页的方式在前端页面通过 Tag 标签一页页的加载数据到内存;但是有些情况下却不需要用户切换 Tag 标签的方式一页页的加载数据,这时候如果一下子全部把数据加载内存,就有可能会导致 OOM,虽然这时候可以通过程序控制分页查询,但是每次查询时候数据库都需要把所有符合条件的数据查询出来然后根据当前页的返回来返回指定的页,这无疑加重了 MySQL 服务器不必要的开销。

其实在 MySQL 中提供了流式查询,这允许把符合条件的数据一部分一部分的加载到内存,本 Chat 就来具体讲解如何在 MySQL中使用流式查询:

  • 使用流式查询前,我们是如何在 MySQL 中进行查询数据的,整个过程发生了什么?
  • 如何使用 JDBC 编程方式在 MySQL 中使用流式查询?
  • 如何在 Mybatis 中使用 MyBatisCursorItemReader 进行流式查询?
  • 如何在 Mybatis 中使用 ResultHandler 进行流式查询?
  • 什么是客户端流式查询和服务器端流式查询?
646 人已订阅
会员免费看
¥9 原价订阅
查看文章评论/提问
余焱林ॐ7 个月前
我本地mac测试MyBatisCursorItemReader,200万条数据, selectByStream wait cost:68, process time:47184 selectAll wait time:14271, process time:12316 总的时间(第一次等待时间+处理时间) selectByStream>selectAll 结论是数据量大的场景下,selectByStream的网络开销时间不可忽略。
jesse2 年前
实际应用场景多吗
加多(作者)2 年前
挺多的,比如数据迁移,比如根据条件捞取大量设备信息群发消息
微信扫描登录
关注提示×
扫码关注公众号,获得 Chat 最新进展通知!
入群与作者交流×
扫码后回复关键字 入群
Chat·作者交流群
入群码
该二维码永久有效
严选标准
知道了
Chat 状态详情
开始预订
预订结果公布18.08.11

预订达标,作者开始写作

审核未达标,本场 Chat 终止

作者文章审核结果公布18.08.24

审核达标,文章发布

审核未达标,本场 Chat 终止

Chat 完结
×
已购列表