Databricks中SQL查询结果超64k行被截断,如何显示10万行?
解决SQL查询结果被截断的方法
根据你遇到的查询结果仅显示64000行的问题,不同SQL工具的调整方式如下:
1. MySQL 命令行客户端
- 临时解除行数限制:执行SQL命令
SET @@global.max_join_size = 18446744073709551615; - 永久生效:修改
my.cnf(Linux)或my.ini(Windows)配置文件,添加一行:
保存后重启MySQL服务。max_join_size=18446744073709551615 - 启动客户端时绕过限制:使用参数启动
mysql --quick --max_allowed_packet=64M--quick参数让结果逐行输出,避免内存缓存导致的截断。
2. PostgreSQL psql客户端
- 临时关闭行数限制:执行psql内置命令
0表示无限制,也可以设置为具体的数值(如100000)。\set FETCH_COUNT 0 - 关闭分页器避免截断:启动psql时添加参数
psql -P pager=off
3. SQL Server Management Studio (SSMS)
- 针对「结果到网格」:
- 点击顶部菜单「工具」→「选项」
- 展开「查询结果」→「SQL Server」→「结果到网格」
- 取消勾选「超出指定行数时截断结果」,将「每批最多返回的行数」设为0(无限制)
- 针对「结果到文本」:
在「结果到文本」的选项面板中,同样将「每批最多返回的行数」设为0。
4. DBeaver/Navicat 等GUI工具
- DBeaver:
点击「编辑」→「首选项」→「数据库」→「结果集」,取消勾选「限制结果集行数」,或设置数值为100000以上。 - Navicat:
点击「查询」→「选项」→「结果」,将「最大行数」设为0或所需的100000。
备选方案:导出到文件
如果仅需获取完整数据而非在工具内显示,直接导出为CSV/Excel格式通常不会有截断:
- MySQL:
SELECT * FROM your_table INTO OUTFILE '/path/to/result.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; - PostgreSQL:
COPY your_table TO '/path/to/result.csv' WITH (FORMAT csv); - SSMS:右键结果集→「另存为」,选择CSV格式保存。
内容的提问来源于stack exchange,提问作者Darryl Odom
相关产品推荐
相关产品推荐

