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

作者/分享人:追梦
向 Ta 提问
追梦,某大型互联网公司资深Java开发工程师,并发编程网编辑;热衷并发编程,微服务架构设计,中间件基础设施

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

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

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

  • 使用流式查询前,我们是如何在 MySQL 中进行查询数据的,整个过程发生了什么?
  • 如何使用 JDBC 编程方式在 MySQL 中使用流式查询?
  • 如何在 Mybatis 中使用 MyBatisCursorItemReader 进行流式查询?
  • 如何在 Mybatis 中使用 ResultHandler 进行流式查询?
  • 什么是客户端流式查询和服务器端流式查询?
已有236人预订
预订达标
文章出炉
     
18.08.10
18.08.24
本场 Chat 文章已出炉,购买后即可阅读文章并获得一张追梦的读者圈Pass
请务必添加GitChat服务号以查看活动进度及获取活动通知。
查看文章评论/提问
jesse
实际应用场景多吗
追梦: 挺多的,比如数据迁移,比如根据条件捞取大量设备信息群发消息
你可能还喜欢
解读《阿里巴巴 Java 开发手册》背后的思考
Hollis
LeetCode 刷题指南以及常见算法题解题思路总结
kerry
初探 Kafka
阿福
高并发系统缓存实战入门
饿了么物流技术团队
7 天从 Java 工程师转型为 Go 工程师
DIU哥
大数据开发面试指南
王知无
微信扫描登录
关注提示×
扫码关注公众号,获得 Chat 最新进展通知!