关闭DBeaver行数限制需右键数据库连接→编辑连接→SQL编辑器→结果集→取消勾选“限制结果集大小”,并同步关闭“Auto-fetch next segment”和“Refresh data on next page rows”,修改后须点击“完成”生效。

默认开启的“限制结果集大小”就是你看到的行数上限,不关它,任何导出、滚动、分页操作都会被截断。
怎么关掉或调大 DBeaver 的默认行数限制
这个限制不是 SQL 本身加的 LIMIT,而是 DBeaver 客户端在获取结果时主动加的“安全阀”。它藏在连接级别的编辑器设置里,而不是全局偏好设置中。
- 右键目标数据库连接 → 选择 编辑连接
- 左侧选 SQL 编辑器 → 右侧展开 结果集 部分
- 取消勾选
限制结果集大小(这是最直接的关闭方式) - 如果想保留限制但调高阈值,勾选它后修改
最大行数字段,比如设为10000 - 注意:改完要点击
测试连接或完成才生效,仅点应用不会更新当前已打开的查询窗口
为什么关了限制,滚动到底部还是触发新查询?
即使关了 限制结果集大小,只要还开着 Auto-fetch next segment 或 Refresh data on next page rows,DBeaver 就会在你拖动垂直滚动条越过当前加载区时,自动发一个带更大 LIMIT 0,N 的新查询——这不是 bug,是它的“懒加载”机制。你看到的“翻页”,本质是反复重跑全表扫描。
- 这两个选项位于同一处:SQL 编辑器 → 结果集 区域底部
- 必须同时取消勾选
Auto-fetch next segment和Refresh data on next page rows - 否则哪怕你设了
最大行数为50000,第一次只拉LIMIT 0,200,往下滚就立刻再发LIMIT 0,400……直到内存撑爆或超时
导出全量数据时仍被截断?检查导出路径是否绕过限制
点击「导出结果集」时,DBeaver 默认导出的是当前已加载的结果集(即受上述所有限制约束后的子集),哪怕界面上勾了“导出全部行”,也不代表跳过了 fetch size 限制。
- 正确做法:先确保上面三项(
限制结果集大小、Auto-fetch next segment、Refresh data on next page rows)全部关闭 - 再执行查询,等右下角状态栏显示“共 X 行”且不再闪烁加载图标(说明整张结果集已一次性拉完)
- 此时再点导出 → 勾选
导出全部行,才能真正导出全量 - 对百万级结果,建议勾选
使用后台任务导出并启用流式导出,否则容易 OOM 或卡死
最容易被忽略的是:这些设置是按连接独立生效的,不是全局统一开关。换一个数据库连接,得重新进编辑界面配一遍;而且一旦开了“自动预取”,你以为在看第 500 行,其实后台已经默默发了十几个 LIMIT 查询——性能和数据一致性风险都在这里。











