GBase 8a
文章平均质量分 53
生命之源;
这个作者很懒,什么都没留下…
展开
-
Go 访问GBase 8a 数据库的一个方法
截至目前(2022-05-26),GBase 8a尚未发布go语言的驱动,本文尝试通过go-sql-driver/mysql驱动来访问GBase 8a数据库。Go 驱动安装从github.com下载驱动E:\go\hello>go get github.com/go-sql-driver/mysqlgo: downloading github.com/go-sql-driver/mysql v1.6.0go: added github.com/go-sql-driver/mysql v1.6原创 2022-05-30 14:33:01 · 497 阅读 · 0 评论 -
GBase 8a V8版本节点替换期间通过并发数控制资源使用减少对系统影响的方法
在节点替换期间,需要从备份节点读取并传输大量数据,必然会对现有系统造成影响。在V9版本里是通过重分布的方式实现同步,可以控制并发数,暂停恢复等;而在V8版本里无这个功能,如果用户对性能影响更敏感,接受更长时间的时候,可以通过人工减少同步进程的方式,来减少对系统的影响。有关参数和配置监控配置文件gcluster/config/gcmonit.cnf, 注意是1个m,不是gcmmonit.cnf注释掉如下部分#[gcrecover]#fail2ok_trigger_cmd=#prog_name=g原创 2022-05-30 12:19:38 · 378 阅读 · 0 评论 -
GBase 8a OLAP分析函数 cume_dist的使用样例
GBase 8a支持cume_dist 函数,用于计算小于等于或者大于等于(根据order的顺序)该值的百分比。语法cume_disk() over([partition by ] order by [desc])说明其中partition是否开窗,否则全部数值统一处理。order by 的顺序,ASC(默认) = 小于等于,DESC =大于等于样例小于等于如下例子是默认的升序,第一行表示:小于等于数值1的行数比例为20%gbase> select id,cume_dist()ov原创 2022-05-30 12:17:44 · 332 阅读 · 0 评论 -
GBase 8a OLAP分析函数cume_dist的使用样例
GBase 8a支持cume_dist 函数,用于计算小于等于或者大于等于(根据order的顺序)该值的百分比。语法cume_disk() over([partition by ] order by [desc])说明其中partition是否开窗,否则全部数值统一处理。order by 的顺序,ASC(默认) = 小于等于,DESC =大于等于样例小于等于如下例子是默认的升序,第一行表示:小于等于数值1的行数比例为20%gbase> select id,cume_dist()ove原创 2022-05-30 12:16:25 · 276 阅读 · 0 评论 -
GBase 8a OLAP分析函数cume_dist的使用样例
GBase 8a支持cume_dist 函数,用于计算小于等于或者大于等于(根据order的顺序)该值的百分比。语法cume_disk() over([partition by ] order by [desc])说明其中partition是否开窗,否则全部数值统一处理。order by 的顺序,ASC(默认) = 小于等于,DESC =大于等于样例小于等于如下例子是默认的升序,第一行表示:小于等于数值1的行数比例为20%gbase> select id,cume_dist()ove原创 2022-05-30 12:15:55 · 298 阅读 · 0 评论 -
GBase 8a的create database 会被查询耗时很长怀疑卡住的现象分析
在GBase 8a里,create database是权限最高的DDL语句,其需要一个db_lock独占锁,如果其它SQL在使用该库,则需要等待,从现象看是被卡住了。即使运行create database if not exists一样要等待锁。现象如下的一个create database语句,已经等待了130秒没有返回。最后用户取消了,显示信息如下:可以看到是无法拿到锁,取消了等待锁的操作。排查再次运行create database语句,然后执行gcadmin showlock,查看集群锁原创 2022-05-30 12:08:04 · 619 阅读 · 0 评论 -
GBase 8a OLAP函数group by grouping sets的使用样例
GBase 8a的group grouping sets功能,对后面括号里的 n 个字段或表达式分别做 GROUP BY 操作,最后将结果合并在一起。等同于多个单独的group by后再做一个union all操作。语法GROUP BY GROUPING SETS( (…),(…),…)说明GROUP BY GROUPING SETS (A,B,C) (A、B、C 代表语法中的“(…)”)首先对(A)进行 GROUP BY,然后对(B)进行 GROUP BY,然后对©进行 GROUP BY,最后原创 2022-05-30 12:06:34 · 960 阅读 · 0 评论 -
GBase 8a数据库用户密码安全相关参数汇总
GBase 8a数据库用户密码安全相关参数汇总密码相关参数测试版本 9.5.2.44。提醒:这些参数,在所有节点的gcluster和gnode配置文件必须全部修改,否则更严格的限制参数将导致部分节点密码设置失败,出现【无法自动恢复】的event。这些参数只允许通过配置文件修改,不允许set设置。gbase> show variables like 'password%';+--------------------------------------+-------+| Variable_原创 2022-05-30 12:05:17 · 544 阅读 · 0 评论 -
GBase 8a 服务的启动和停止方法
GBase 8a 数据库集群,提供了在每个节点通过service gcware start stop方式启动和停止服务的方案。目前没有提供在一个节点启动和停止所有节点服务的方法,原因是:1、安全问题,防止误操作;2、有简单的第三方工具,比如C3;3、一些电信客户,不允许root用户在不同节点间连接。启动集群service gcware start停止集群service gcware stop集群服务状态service gcware statusV95版本不再用root操作系统用户,而原创 2022-05-17 15:28:47 · 1169 阅读 · 0 评论 -
GBase 8a 服务的启动和停止方法
GBase 8a 数据库集群,提供了在每个节点通过service gcware start stop方式启动和停止服务的方案。目前没有提供在一个节点启动和停止所有节点服务的方法,原因是:1、安全问题,防止误操作;2、有简单的第三方工具,比如C3;3、一些电信客户,不允许root用户在不同节点间连接。启动集群service gcware start停止集群service gcware stop集群服务状态service gcware statusV95版本不再用root操作系统用户,而原创 2022-05-17 15:27:15 · 797 阅读 · 0 评论 -
GBase8a MPP Cluster集群状态gcadmin输出说明
GBase 8a数据库集群提供了gcadmin的管理命令查看集群状态,包括当前整体状态,各个服务的状态等。本文介绍各个状态的含义,便于运维和巡检人员,根据情况做处理。样例LOCK大于或等于一半的管理节点不可用(非OPEN状态)V95提示:在V9版本里,取消了LOCK状态,一直是NORMAL。后续SQL会卡住,直到恢复。修改的原因是一半管理节点离线的情况,大致分如下2种:1、确实坏了一半管理节点,且需要很久才能修复。此时系统无论怎么都恢复不了,必须人工介入维修。 业务是报错还是卡住,对结果没有影原创 2022-05-17 15:22:02 · 425 阅读 · 0 评论 -
GBase 8a数据库临时数据目录tmpdata的作用和说明
在GBase 8a数据库集群中,如果数据运算过程中,内存不足以保存所有数据时,会使用磁盘保存临时中间结果。本文介绍该临时数据目录tmpdata的作用和说明。版本本文使用的版本是9.5.2.36。gbase> select version();+-----------------+| version() |+-----------------+| 9.5.2.36.125743 |+-----------------+1 row in set (Elapsed: 00:00原创 2022-04-20 15:59:40 · 421 阅读 · 0 评论 -
GBase 8a数据库V95扩容时报错:Error parsing configuration key “dbRootPwd”,unknown parameter.
GBase 8a数据库集群V95版本,在扩容时,需要通过genDBUser和genDBPwd指定原有的数据库管理员用户和密码,不再使用老版本的dbRootPwd参数了。原创 2022-04-19 16:22:00 · 254 阅读 · 0 评论 -
GBase 8a集群通过grep过滤快速获得coordinator和gnode的IP地址的方法
GBase 8a提供了gcadmin 命令可以返回集群节点的IP地址/主机名,以及各个服务的状态,如果用户要循环每个IP做一些操作,需要解析该输出。本文提供一种采用grep,快捷的获得coordinator和gnode的IP地址的方法。环境2节点集群,1个调度节点,2个数据节点。集群版本8.5.2.43[root@rh6-1 ~]# gcadminCLUSTER STATE: ACTIVECLUSTER MODE: NORMAL==============================原创 2022-04-18 16:22:15 · 2398 阅读 · 0 评论 -
GBase 扩容操作重分布完成后清理旧的distribution时报错FCan not drop nodedatamap EventLog is using distribution
GBase 8a在扩容操作中,当所有表已经全部重分布到新的分布策略distribution以后,老的distribution就可以用refreshnodedatamap drop删除了。 但如果此时有些表存在event,且使用的老的策略,则会出现这个错误:Can not drop nodedatamap EventLog is using distribution。此时需要将原有的event处理完成才可以继续操作。换个角度,如果是扩容,在操作前将集群状态全部恢复正常,没有event会更合适一些,可以减少运原创 2022-04-18 16:17:32 · 495 阅读 · 0 评论 -
GBase 8a MPP Cluster自带的gccli命令行工具简介
概述gccli是GBase 8a MPP Cluster自带的命令行连接数据库工具。通过该工具可以执行SQL语句和外部SQL文件。可以独立安装在一个非集群环境的机器上,仅支持GBase 8a MPP Cluster支持的linux操作系统。功能通过gccli工具可以执行所有合法的sql和sql文件。安装文件gccli安装包:gccli-9.5.2.xx-OSversion-platform.tar.bz2说明gccli_install ----------gccli_install.sh (客原创 2022-04-18 16:06:13 · 5323 阅读 · 0 评论 -
GBase 8a的内存参数设置只允许整数,不支持小数报Error while setting value
GBase 8a的各种数字类参数,绝大部分只允许整数,如果设置成了带小数点的参数,在当前版本(截至2022-03-04)里会出现服务启动失败,需要修正成整数才可以正常启动。报错样例注意,当这类参数错误时,在system.log里可能没有任何输出,此时可以在操作系统gbase用户下,手工执行gbased 看报错信息。[gbase@gbase100 gbase]$ gbasedUnknown suffix ‘.’ used for variable ‘gbase_heap_data’ (value ‘0原创 2022-04-18 16:02:56 · 200 阅读 · 0 评论 -
GBase 8a集群服务器向客户端发送数据的超时参数gcluster_send_client_date_timeout
报错样例java.lang.OutOfMemoryError: GC overhead limit exceeded内存不足,垃圾回收超过限制次数了。解决方案因为jdbc默认是将所有结果集都缓冲到本地,以便提供前进,后退的双向移动功能,但会占用大量内存。如果业务上只有前进(next),则可以采用每次只读取最小单位数据,处理完了再读取下一部分,来减少内存的消耗。这个问题,对任何数据库都存在。ResultSet.TYPE_FORWARD_ONLY, 表示只会前进,不会后退。ResultSet.CO原创 2022-04-18 16:01:07 · 219 阅读 · 0 评论 -
GBase 8a 用户可使用的hint整理
GBase 8a支持hint来临时调整SQL执行计划,其中session级的参数全部可以通过hint来设置,本文还整理一些特殊hint。语法/+HINT[,HIND]/多个hint可以用逗号分隔,也可以分开写多个,比如/+HINT/ /+HINT/混合用也是可以的。注意:由于hint采用的是和注释相同的格式,所以如果在命令行客户端 gccli执行时,要注意加上-c 参数,避免/* */之间的【注释】部分被自动忽略掉,而没有发送到服务器执行。HINT数据库参数参数:_gbase_hint_e原创 2022-04-18 16:00:13 · 737 阅读 · 0 评论 -
GBase 8a管理集群gcware的日志-vote leader、flower、candidate部分
环境2节点集群[gbase@gbase_rh7_001 log]$ gcadminCLUSTER STATE: ACTIVEVIRTUAL CLUSTER MODE: NORMAL=============================================================| GBASE COORDINATOR CLUSTER INFORMATION |===========================原创 2022-04-18 15:57:53 · 610 阅读 · 0 评论 -
GBase 8a通过Rsync快速删除加载日志loader_logs下的大量目录和文件的方法
GBase 8a通过LOAD方式加载时,如果有报错或者加载错误数据,会将加载日志和数据记录到连接节点的load_logs目录下。因为是用户数据,当前版本尚没有配置自动删除功能,而是建议用户在LOAD语句里将错误数据导出到用户自己指定的ftp/sftp目标服务器,自行管理。本文介绍在默认情况下,如何通过rsync命令快速清理这些日志。环境构造加载错误日志弄了一个表结构和数据不一致的情况。gbase> load data infile ‘sftp://gbase:gbase1234@10.0.2.原创 2022-04-14 16:57:26 · 271 阅读 · 0 评论 -
GBase 8a的后台(daemon)事件调度进程event_scheduler介绍
GBase 8a支持数据库内的定时任务事件,其调度程序由数据库的daemon进程负责,本文简单介绍相关参数 event_scheduler 使用方法,以及从数据库日志等查看事件的相关信息。样例如下Id=1的进程就是后台的事件调度线程,注意其Command列是Daemon。gbase> show processlist;±—±----------------±-----------------±-----±--------±-----±-----------------------±------原创 2022-04-14 16:03:07 · 1000 阅读 · 0 评论 -
GBase 8a采用sudo安装时出现输入密码等待300秒超时现象的原因
GBase 8a支持sudo安装,但现有版本不支持在执行sudo命令时输入密码,否则操作系统在等待密码输入[sudo] password for gbase的信息,而安装程序在等待命令返回,直到300秒的超时时间到了报错。现有解决方案是调整操作系统sudo策略,让gbase用户执行sudo时无需输入密码,包括第一次运行sudo。报错现象报错信息为We trust you have received the usual lecture from the local SystemAdministrat原创 2022-04-14 16:01:20 · 528 阅读 · 0 评论 -
GBase 8a里通过rsync加速调度coor节点的扩容和替换效率
在GBase 8a的早期版本里,扩容或者节点替换调度节点(coordinator)时,是通过本地tar打包,然后scp传输到新节点来实现的,而tar本身不支持并行,所以代码上是将打包任务按表名字分解成多个任务,发到多个调度节点执行(并行打包)。新版本支持通过rsync的方式进行更快速的高效同步。本文介绍与此有关的内容。原创 2022-04-14 15:48:28 · 297 阅读 · 0 评论 -
GBase 8a 库内数据挖掘功能介绍
GBMLLib是GBase 8a MPP Cluster的数据挖掘和机器学习扩展库,以插件的形式添加到GBase 8a MPP Cluster中。通过其提供的机器学习算法,GBase 8a MPP Cluster可以对用户数据进行深层次的分析和挖掘,将用户数据转化为用户价值。GBMLLib提供了基于SQL的机器学习算法,目前包括的算法有:回归算法(线性回归)、分类算法(Logistic回归、支持向量机)和聚类算法(K-Means)。同时也提供了一些数组操作和线性代数计算的基本函数。GBMLLib原创 2022-03-28 09:48:21 · 118 阅读 · 0 评论 -
GBase 8a 虚拟集群及镜像集群
虚拟集群一个虚拟集群中包含一个或多个VC(虚拟集群)。各VC在整个虚拟集群范围内独立运行,共享统一的入口。权限许可的情况下,各虚拟集群间可以相互访问。支持Coordinator node和Data node部署在同一个物理节点上。统一管理在集群内部进行虚拟集群划分,在增强集群扩展能力的同时,还提供了统一的管理视图。统一入口·用户选择Coordinator Cluster中的任意一个节点作为集群入口;·Coordinator node根据连接用户的设置连接和操作用户指定的VC。业务隔离加粗样式原创 2022-03-28 09:47:36 · 438 阅读 · 0 评论 -
GBase 8a 数据加载及集成
数据加载集群加载具备如下特性和优点:·与集群高度集成,无需额外部署;·支持SQL及外部工具的加载方式,面向用户的SQL接口方式使集群加载与DML等数据操作方式统一;·支持单表多数据源并行加载,支持多加载机对单表的并行加载,最大程度优化加载性能;·支持从通用数据服务器远程读取数据,支持FTP/SFTP/HTTP/HTTPS/HDFS/Kafka等多种文件传输协议;·支持普通文本、gzip压缩、snappy压缩和lzo压缩等多种格式数据文件加载;·支持普通文本模式、定长文本模式和宽松模式加载;·原创 2022-03-28 09:46:33 · 2475 阅读 · 0 评论 -
GBase 8a 数据可靠性
数据可靠性·GBase 8a MPP Cluster的多分片和多副本机制GBase 8a MPP Cluster通过多副本冗余机制来保证集群的高可用特性。集群中的表数据被切分为多个分片并存储在不同节点上,每个分片可提供1个或多个副本数据冗余,集群副本数和分片数可进行灵活配置,可以配置副本分片到集群的任意一个节点上,并且可以根据配置为主机性能高和存储空间大的节点分配更多的主本和副本。主副本间会自动数据同步。·多副本冗余机制可以降低节点故障的木桶效应;·数据节点发生故障时,系统自动切换至其副本数据节点进原创 2022-03-28 09:44:25 · 1610 阅读 · 0 评论 -
GBase 8a 全文检索功能介绍
GBase 8a MPP Cluster数据库支持全文检索,采用全单字索引方式,支持几乎所有的语种,并且可以保证100%的查询召回率。结合GBase 8a MPP Cluster独特的列存储、压缩和智能索引技术,适合面向海量数据的检索查询应用。主要功能包括:建立索引与搜索·在GBase 8a MPP Cluster中内嵌全文检索引擎,支持表中所有文本类型字段的索引与查询;·支持参数化管理,索引建立、分词配置管理、索引维护、搜索等过程均可以通过GBase 8a MPP Cluster的标准配置文件来配原创 2022-03-28 09:41:56 · 1184 阅读 · 0 评论 -
GBase 8a 的数据安全性
数据加密GBase 8a MPP Cluster拥有数据库落地数据的软加密功能,可满足用户的安全需求,提高系统的安全性。数据加密实现表级或者列级不同粒度的加密要求。数据加密支持如下特性:·支持加密关键字encrypt建表;·支持表级或者列级不同粒度的加密要求;·支持表级加密属性的查询;·支持密钥证书管理。数据脱敏·GBase 8a MPP Cluster拥有动态数据脱敏功能,开发人员和数据库管理员能够控制敏感数据的暴露程度,在数据库层面生成脱敏数据,简化了数据库应用层的安全设计和编码;·动态原创 2022-03-28 09:22:07 · 761 阅读 · 0 评论 -
GBase 8a 数据分布式存储
GBase 8a的列存和行列混存数据在磁盘中按照列的方式进行组织和物理存储。面对海量数据分析的磁盘I/O瓶颈,分析型数据库把表数据按列的方式存储,列存储架构对查询、统计和分析类操作具备天然的优势。其优势体现在以下几个方面:降低I/O只有访问查询所涉及的列才会产生磁盘I/O,查询中没有涉及的列不需要访问也不产生磁盘I/O。高压缩比压缩比可以达到 2 ~ 20 倍。支持行列混存GBase 8a MPP Cluster支持行列混存。对于列存储的集群架构,当操作涉及的列数较多,访问的数据记录非常离散时原创 2022-03-25 15:00:33 · 1907 阅读 · 0 评论 -
GBase 8a MPP Cluster 数据库技术特点
GBase 8a MPP Cluster具有多样化的平台选择、与时俱进的逻辑架构、海量数据高效存储、海量数据高速加载、海量数据高性能分析、弹性服务器资源伸缩、完善的系统资源管理、多级别的高可用、跨数据中心的数据容灾、便捷的数据迁移、可靠的数据安全、完备的SQL标准支持和简单便捷的日常运维等技术特征。能满足各个数据密集型行业日益增大的数据分析、数据挖掘、数据备份和即席查询等需求的能力。具体特点如下:多样化的平台选择低成本:可完全使用x86架构的PC Server; 支持云平台、虚拟机环境的部署原创 2022-03-25 14:59:49 · 359 阅读 · 0 评论 -
GBase 8a查看和清理故障恢复状态Failover的方法
1 列存储和行列混存数据在磁盘中按照列的方式进行组织和物理存储。行存储架构和列存储架构的数据库分别适用于不同的应用,具备各自的优劣势,如下图所示。列存储架构对查询、统计和分析类操作具备天然的优势。例如,在分析系统中对100列的业务表进行分析查询,对该业务表列的引用一般不超过10个。对I/O是主要瓶颈的分析系统而言,相较于传统的行式数据库,列式存储技术可以很容易地带来一个数量级的性能提升。面对海量数据分析的I/O瓶颈,分析型数据库把表数据按列的方式存储,其优势体现在以下几个方面。降低I/O:只有访问原创 2022-03-25 14:59:05 · 2104 阅读 · 0 评论 -
GBase 8a查看和清理故障恢复状态Failover的方法
GBase 8a在执行dml,ddl等数据变动业务时,为了避免发起节点出现故障,提供了failover机制来清理残余信息,保证集群一致性。针对一些特殊情况,特别是早期的版本,可能存在某些情况需要强行清理的情况。结合强行释放锁的操作,可以清理指定SQL占用的资源。本文提供的方案请慎重使用。查看failover方法在数据库操作系统dbauser下(一般是gbase)执行 gcadmin showfailover[gbase@rh6-1 ubas]$ gcadmin showfailover+=+|原创 2022-03-25 14:58:31 · 476 阅读 · 0 评论 -
GBase 8a MPP 大规模并行计算技术
GBase 8a MPP Cluster为非对称部署的联邦架构,三大核心组件均可单独部署,其中GCluster调度集群和GCWare管理最大节点数为64,GNode 计算集群支持1000个以上的节点部署,可处理100PB以上的结构化数据。1、大规模并行计算GBase 8a MPP Cluster采用MPP技术,主要特点有:1) 分布式并行计划器,结合集群特征,对算子行进分布式处理,生成适合的分布式执行计划;2) 通过基于规则和基于代价的优化,保证执行计划的高效;3) 调度器采用异步I/O等技术,确原创 2022-03-25 14:57:40 · 1346 阅读 · 0 评论 -
GBase 8a查看和强行释放SQL持有锁的方法
GBase 8a在执行时。为避免并发冲突保证一致性,会持有一些锁来保证自己需要的资源在执行期间不会出现问题。锁在SQL执行完毕后会自动释放掉。在某些特殊场景下,特别是一些老版本集群,出现需要强行释放掉锁的需求,比如SQL长时间无法结束,而该SQL持有的锁又导致其它的SQL无法正常运行,同时环境又不能重启节点服务时,可以考虑本文的方法强行释放SQL持有的锁。对于DDL,DML类的SQL,一般要配合failover清理构造锁的测试场景如下通过lock table语句构造了一个持有锁的SQL场景,连接节点为原创 2022-03-25 14:56:57 · 1533 阅读 · 0 评论 -
GBase 8a V8版本通过python UDF获得操作系统磁盘可用空间的方法
GBase 8a 可以通过UDF扩展来访问操作系统级的资源,比如数据库所在目录剩余的空间。在V9版本里,提供了一个系统元数据表,而在V8里并没有自带这个功能。 本文介绍在支持python 的8.6.2.43版本里,通过UDF获得磁盘可用空间的一种方法。查询磁盘可用空间的python UDF代码熟悉python的可以看到函数体本身就是一段标准的python程序。入口参数是磁盘目录,返回是可用空间(字节)use gclusterdb;drop function if exists get_os_disk原创 2022-03-25 14:55:59 · 1686 阅读 · 0 评论 -
GBase 8a 支持使用python语言编写的UDF函数
在Postgres中,使用PL/Python存储过程语言来支持使用python语言编写的UDF函数。PL/Python以‘非信任’语言( ’untrusted’ language)的形式存在,这意味着它不限制用户如何使用Python。所以这种语言被命名为plpythonu。如果Python将来提供了新的安全机制,会提供plpython语言。未信任的PL/Python的编写者必须谨慎编写这些函数,不要用来做非法操作,因为这个功能使得拥有DBA身份的用户可以执行任意脚本。只有超级用户才有权限创建这些函数。1、原创 2022-03-25 14:55:16 · 913 阅读 · 0 评论 -
GBase 8a采用流模式处理JDBC大结果集,避免内存不足 OutOfmemoryError: GC overhead limit exceeded
报错样例java.lang.OutOfMemoryError: GC overhead limit exceeded内存不足,垃圾回收超过限制次数了。解决方案因为jdbc默认是将所有结果集都缓冲到本地,以便提供前进,后退的双向移动功能,但会占用大量内存。如果业务上只有前进(next),则可以采用每次只读取最小单位数据,处理完了再读取下一部分,来减少内存的消耗。这个问题,对任何数据库都存在。ResultSet.TYPE_FORWARD_ONLY, 表示只会前进,不会后退。ResultSet.C原创 2022-03-25 14:52:18 · 374 阅读 · 0 评论 -
GBase 8a 集群服务器向客户端发送数据的超时参数gcluster_send_client_date_timeout
报错样例java.lang.OutOfMemoryError: GC overhead limit exceeded内存不足,垃圾回收超过限制次数了。解决方案因为jdbc默认是将所有结果集都缓冲到本地,以便提供前进,后退的双向移动功能,但会占用大量内存。如果业务上只有前进(next),则可以采用每次只读取最小单位数据,处理完了再读取下一部分,来减少内存的消耗。这个问题,对任何数据库都存在。ResultSet.TYPE_FORWARD_ONLY, 表示只会前进,不会后退。ResultSet.CO原创 2022-03-25 14:49:48 · 1383 阅读 · 0 评论