jdbc的resultset底层实现原理是怎样的?
一、jdbc的resultset底层实现原理是怎样的
只了解 mysql, mysql 中的 result 默认会把所有结果拿回来。默认情况下,结果集完全检索并存储在内存中。在大多数情况下,这是最有效的操作方式,并且由于MySQL网络协议的设计,更容易实现。
如果您正在使用具有大量行或较大值的结果集,并且无法在 JVM 中为所需的内存分配堆空间,则可以告诉驱动程序一次将结果流式传输回一行。
所以所以如果应用不想一次拿那么多,可以
stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
stmt.setFetchSize(Integer.MIN_VALUE);
setFetchSize一个非MIN_VALUE在一般情况下是没啥用的, 但如果设置了 MIN_VALUE 之后 jdbc 代码中会用一个 streamingResult 的方式一条条从 server 的连接拿,当然这个文档中也提到了用这种方式的一些 caveats。
最后,除了使用 MIN_VALUE, 还可以使用 useCursorFetch=true(同时需要 prepare? ),之后 setFetchSize 就能生效了,不过和上面的区别是: 前面是 mysql 一次吐全部数据推给客户端,客户端一条条收然后收的慢通过 tcp backpressure; 后者用 cursor 是 mysql 不返回全部结果,而是客户端根据 setFetchSize(或 defaultFetchSize) 多次用 从 mysql 拉取指定条数据。
延伸阅读:
二、Navicat是什么
Navicat是一套快速、可靠和全面的数据库管理工具,专门用于简化数据库管理和降低管理成本。Navicat图形界面直观,提供简便的管理方法,设计和操作MySQL、MariaDB、SQL Server、Oracle、PostgreSQL和SQLite的数据。
Navicat提供一个直观和设计完善的用户界面,用于创建、修改和管理资料库的所有对象,例如表、视图、函数或过程、索引、触发器和序列。我们的表设计器帮助用户创建和修改数据库的表,让设置高级选项,如关系、限制、触发器和更多。
使用Navicat浏览和修改数据,插入、编辑、删除数据或复制和粘贴记录到数据表形式的数据编辑器,Navicat将运行相应的命令(例如INSERT或UPDATE),免除写复杂的SQL。广泛的数据编辑工具令编辑工作更为方便,例如外键查找、set/enum选择器和记录筛选。
猜你喜欢LIKE
相关推荐HOT
更多>>怎么向VFP数据表中一次加入多条记录?
一、怎么向VFP数据表中一次加入多条记录以下均以SQL2000、VFP6及以上的表为例代码导入:查询分析器中执行如下语句(先选择对应的数据库)————...详情>>
2023-10-19 12:53:00MySQL的自增ID用完了应该怎么办?
一、MySQL的自增ID用完了应该怎么办解决方案1:使用BIGINT数据类型一种解决方法是使用BIGINT数据类型。BIGINT数据类型的最大值是92233720368547...详情>>
2023-10-19 12:04:41jdbc的resultset底层实现原理是怎样的?
一、jdbc的resultset底层实现原理是怎样的只了解 mysql, mysql 中的 result 默认会把所有结果拿回来。默认情况下,结果集完全检索并存储在内存...详情>>
2023-10-19 09:36:35为什么查询information_schema下的TABLES这么慢?
一、为什么查询information_schema下的TABLES这么慢一般有两个原因。1、是元数据太多,就比如你的例子总共七万多张表,information_schema在统...详情>>
2023-10-19 07:37:52热门推荐
pycharm的使用技巧都有哪些?
沸C语言中定义与声明的含义是什么?
热怎么向VFP数据表中一次加入多条记录?
热JS的机制有哪些?
新MySQL的自增ID用完了应该怎么办?
C++ 写即时通讯服务器用什么数据库比较合适?
云数据库并发数和连接数是个怎样的关系?
为什么现在MySQL无法重命名数据库?
mysql.sock文件是怎么起作用的?
jdbc的resultset底层实现原理是怎样的?
Oracle/MySQL数据库创建索引的原则是什么?
Oracle怎么修改某个字段特定位置的字符?
为什么有些低端云主机(1CPU,4G内存)也提供SQLServer,这大型数据库,能运行吗?
为什么查询information_schema下的TABLES这么慢?