在这里插入图片描述
由于现在 ORM 框架的成熟运用,很多小伙伴对于 JDBC 的概念有些薄弱,ORM 框架底层其实是通过 JDBC 操作的 DB
JDBC(JavaDataBase Connectivity)是 Java 数据库连接, 说的直白点就是使用 Java 语言操作数据库
由 SUN 公司提供出一套访问数据库的规范 API, 并提供相对应的连接数据库协议标准, 然后 各厂商根据规范提供一套访问自家数据库的 API 接口
文章大数据量操作核心围绕 JDBC 展开,目录结构如下:
MySQL JDBC 大数据量操作
常规查询
流式查询
游标查询
JDBC RowData
JDBC 通信原理
流式游标内存分析
单次调用内存使用
并发调用内存使用
MyBatis 如何使用流式查询
结言
MySql JDBC 大数据量操作
整篇文章以大数据量操作为议题,通过开发过程中的需求引出相关知识点
迁移数据
导出数据
批量处理数据
一般而言笔者认为在 Java Web 程序里,能够被称为大数据量的,几十万到千万不等,再高的话 Java(WEB 应用)处理就不怎么合适了
举个例子,现在业务系统需要从 MySQL 数据库里读取 500w 数据行进行处理,应该怎么做
常规查询,一次性读取 500w 数据到 JVM 内存中,或者分页读取
流式查询,建立长连接,利用服务端游标,每次读取一条加载到 JVM 内存
游标查询,和流式一样,通过 fetchSize 参数,控制一次读取多少条数据
文章首发自公众号:源码兴趣圈,专注分享高并发、分布式、框架底层源码等知识
常规查询
默认情况下,完整的检索结果集会将其存储在内存中。在大多数情况下,这是最有效的操作方式,并且由于 MySQL 网络协议的设计,因此更易于实现