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

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

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

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

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

  • 使用流式查询前,我们是如何在 MySQL 中进行查询数据的,整个过程发生了什么?
  • 如何使用 JDBC 编程方式在 MySQL 中使用流式查询?
  • 如何在 Mybatis 中使用 MyBatisCursorItemReader 进行流式查询?
  • 如何在 Mybatis 中使用 ResultHandler 进行流式查询?
  • 什么是客户端流式查询和服务器端流式查询?
已有198人预订
预订达标
文章出炉
     
08月10日
08月24日
本场 Chat 文章已出炉,购买后即可阅读文章并获得一张追梦的读者圈Pass
请务必添加GitChat服务号以查看活动进度及获取活动通知。
查看文章评论/提问
jesse
实际应用场景多吗
追梦: 挺多的,比如数据迁移,比如根据条件捞取大量设备信息群发消息
你可能还喜欢
如何设计一个灵活的 MySQL 数据表,应对灵活多变的需求
李岩
Jenkins 自动化构建部署实战
火币集团研发中心
Java 程序员应掌握的 Nginx 实战应用
JPM
带你玩转 JSON
能量架构师
实战剖析 Java 秒杀系统的实现
虎口脱险
小程序从入门到进阶
loonglong
微信扫描登录