DBeaver 导出大表时如何避免一次性加载内存
来源:17golang原创
时间:2026-09-12 20:55:14 276浏览 收藏
DBeaver 导出大表时,关键不是把结果网格一次性全部加载出来,而是让 Data Transfer 直接从数据库读取,并把读取批次、分段方式和文件编码设清楚。实际操作中优先选 CSV,使用 Query the database,把 Fetch size 控制在一个温和的范围;数据量再大时启用分段提取。这样可以降低客户端瞬时内存压力,代价是导出时间会更依赖数据库、磁盘和网络速度。
官方地址:https://dbeaver.com/
- 不要用已加载的结果集承担整表导出,优先让 DBeaver 直接查询数据库。
Fetch size控制单批读取量,Multiple queries配合Segment size适合更大的表。- 任务完成后还要抽查 UTF-8 文件的表头、行数和末尾记录。
步骤一:从表或查询结果打开 Export Data
在左侧 Connections 中找到目标表,右键选择 Export Data。如果前面已经写好了带筛选条件的 SQL,也可以在结果网格中右键选择 Export data。两条入口最终都会进入 Data Transfer 向导。
大表建议在向导的格式列表中选择 CSV。XLSX 更适合交付给少量数据的业务同事,整表规模很大时,CSV 更容易连续写入、拆分和后处理。进入下一步后,先检查列清单,避免把不需要的宽字段、调试字段也导出。
步骤二:把提取方式改为可控的批次
在 Extraction settings 中选择 Query the database,让导出任务直接从数据库取数。不要为了省一步而选择 Use fetched rows:它依赖结果集里已经取到的数据,之前为了浏览表格加载的内容并不等于完整导出范围。
先把 Fetch size 设为 5000 左右作为起点。它表示驱动每批取回的行数,不是最终文件大小;网络延迟高、单行字段窄时可以逐步上调,行里有大文本或二进制字段时则要下调。对特别大的表,把 Extract type 改成 Multiple queries,再设置 Segment size,例如 100000 行一段。分段值不是越大越好,重点是让单段耗时和内存都可控。

步骤三:按需处理连接和行数统计
如果导出期间还要继续查询同一个数据库,勾选 Open new connection(s),让读取任务使用新的物理连接。连接数和数据库并发能力有关,单表导出通常不需要为了“更快”盲目增加线程。
Select row count 会在导出前先查询行数,确实需要完整进度信息时再保留它。对复杂视图、分区表或带过滤条件的大表,这个额外统计可能先消耗一次查询资源;只想拿到文件时可以取消。完成这一组设置后,确认向导仍然显示正确的表名和列范围。
步骤四:确认 CSV 编码和字段格式
进入 CSV 的格式设置,编码选 UTF-8,再核对分隔符、是否写入列名、NULL 值的表示方式和文本引用规则。中文内容出现乱码,往往不是内存问题,而是导出编码与打开文件的软件默认编码不一致。
文件名可写成 orders_20260912.csv 这类可追溯形式。不要把“导出向导已经关闭”当成成功条件;真正要确认的是任务完成,以及目标目录出现可读取的结果文件。
步骤五:等待后台任务并抽样验收
点击完成后,DBeaver 会在后台执行数据传输。观察任务进度区中的读取、写入和错误状态,出现失败时先看具体阶段:连接失败、权限不足、磁盘空间不足和字段编码问题的处理方向完全不同。
任务显示 completed 后,打开 CSV 检查三件事:第一行的列名是否完整;中间抽样记录的分隔列数是否稳定;文件末尾是否有被截断的引号或半行。需要精确数量时再与源查询的统计结果对比。验收通过后再把文件交给下游,不要在任务仍为 running 时复制半成品。

常见问题
DBeaver 的 Fetch size 越大越省内存吗?
不是。它只是改变单批从驱动取回的行数;批次越大通常减少往返次数,但可能增加瞬时内存和等待时间,应结合单行大小逐步调整。
为什么导出任务完成了,文件却比预期小?
先检查是否误用了 Use fetched rows、是否只选中了部分列或设置了筛选条件,再核对任务错误信息和文件末尾,不能只根据文件大小判断完整性。
什么时候应该选择 Multiple queries?
当单次提取耗时过长、表规模很大或需要把读取拆成更可控的段时再用。先确认排序键、过滤条件和数据库对分段查询的支持,避免把分段当成无条件提速开关。
这套配置的核心是把“浏览结果”和“导出整表”分开:由数据库直接供数,DBeaver 负责按批读取并连续写文件,最后用任务状态和文件抽样完成确认。
-
文章 · 软件教程 | 9分钟前 | 软件教程 · Lovart使用指南 · 自媒体运营工具 · 短视频内容制作 · 视频素材生成 · 自媒体口播视频包装 Lovart脚本转素材 自制视频封面字幕卡 AI生成短视频片尾 口播脚本二次加工229 收藏
-
文章 · 软件教程 | 1小时前 | 软件教程 · Lovart使用指南 · 自媒体运营 · 内容制作 · 图文排版 · Lovart图文卡片制作 长文拆分三张配图教程 自媒体图文制作方法 Lovart新手入门操作 自媒体内容视觉化技巧414 收藏
-
文章 · 软件教程 | 1小时前 | 软件教程 · 运营效率 · 素材管理 · 版本规范 · 内容交付 · Lovart活动素材整理 Lovart版本管理方法 运营素材交付规范 Lovart导出清单制作 活动物料命名规则113 收藏
-
296 收藏
-
文章 · 软件教程 | 2小时前 | 软件教程 · 运营效率工具 · AI设计实操 · 活动运营 · 内容审核规范 · Lovart活动主视觉制作 运营AI设计教程 需求转素材审核流程 Lovart新手操作指南 活动视觉需求整理方法112 收藏
-
文章 · 软件教程 | 2小时前 | 设计工作流 · AI设计工具 · Lovart · 导出规范 · 交付指南 · Lovart设计师使用指南 Lovart导出设置教程 AI设计交付流程 设计资产规范管理 Lovart素材准备方法265 收藏
-
文章 · 软件教程 | 3小时前 | ide · jetbrains · 软件教程 · 运行配置 · 运行配置 JetBrains IDE Run/Debug Configurations Store as project file135 收藏
-
文章 · 软件教程 | 3小时前 | 设计工作流 · Lovart教程 · AI设计工具 · 设计师效率工具 · 新手实操指南 · Lovart设计师使用教程 Lovart首次实操指南 AI设计工具工作流 品牌多资产产出方法 多格式设计资产导出240 收藏
-
271 收藏
-
141 收藏
-
462 收藏
-
220 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习