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

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

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

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

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

  • 使用流式查询前,我们是如何在 MySQL 中进行查询数据的,整个过程发生了什么?
  • 如何使用 JDBC 编程方式在 MySQL 中使用流式查询?
  • 如何在 Mybatis 中使用 MyBatisCursorItemReader 进行流式查询?
  • 如何在 Mybatis 中使用 ResultHandler 进行流式查询?
  • 什么是客户端流式查询和服务器端流式查询?
已有222人预订
预订达标
文章出炉
     
18.08.10
18.08.24
本场 Chat 文章已出炉,购买后即可阅读文章并获得一张追梦的读者圈Pass
请务必添加GitChat服务号以查看活动进度及获取活动通知。
查看文章评论/提问
jesse
实际应用场景多吗
追梦: 挺多的,比如数据迁移,比如根据条件捞取大量设备信息群发消息
你可能还喜欢
有关微服务的简介和经验分享
Yang
大型 Java 应用后台重构技术策略详解
驰骋
如何在繁重工作间隙保持良好的自学节奏和效能?
大妈
微服务网关 Spring Cloud Gateway 的应用实战
aoho求索
如何采用一套程序代码,实现系统的“千人千面”
白公
Docker 的基础知识整理
假不理
微信扫描登录