Navicat 默认限制 SELECT 查询结果行数,需在“工具→选项→查询编辑器→最大行数”中调整(设0为不限制但不推荐,建议10000);该设置仅影响无LIMIT的查询,且右下角分页控件需同步调整才能查看全部已拉取数据。

查不到全部数据?先看“查询编辑器→最大行数”设置
Navicat 在 SQL 编辑器中执行 SELECT 语句时,默认只拉取有限行数(常见为 20 或 100 行),不是 SQL 写错了,也不是数据库没数据,而是客户端主动截断。这个限制由「查询编辑器→最大行数」控制,和双击表打开的「查看数据」限制是两套独立配置。
- 路径:菜单栏
工具 → 选项 → 查询编辑器 → 最大行数(Windows/Linux);macOS 是Navicat [类型] → 偏好设置 → 查询编辑器 - 设为
0表示不限制(不推荐,可能卡死或内存爆掉) - 设为
10000是较稳妥的折中值,兼顾响应速度与数据完整性 - 该设置只影响「未显式写
LIMIT的 SELECT 查询」;一旦 SQL 里写了LIMIT 50,就完全忽略此设置
为什么改了“最大行数”还是只显示20行?检查右下角分页控件
即使「最大行数」设成了 10000,SQL 编辑器右下角的分页控件仍可能只显示前 20 行——它只是控制当前窗口的**单次渲染条数**,不是拉取上限。滚动到底部不会自动加载更多,也不会触发二次请求。
- 右下角数字(如 “20”、“100”、“500”)可点击切换,仅改变当前页展示量
- 它不改变已拉取的数据总量,只是对已有结果做前端分页
- 如果「最大行数」设为 10000,但分页控件选的是 20,你仍需手动点“下一页”才能看到第 21–40 行
- 想一口气看全,把分页控件调成跟「最大行数」一致的值(比如都设为 1000),或直接用快捷键
Ctrl+End(Windows)跳到最后一页
执行 EXPLAIN 或大批量 INSERT 时,“最大行数”不是唯一瓶颈
某些操作看似受行数限制,实则另有隐情。比如 EXPLAIN ANALYZE 卡死,或 .sql 文件导入只插了前 1000 条,问题往往不在「查询编辑器→最大行数」,而在其他位置。
-
EXPLAIN ANALYZE返回的是嵌套结构化数据,Navicat 渲染压力大;建议先将「最大行数」临时设为100并勾选「限制结果集」 - 执行含大量
INSERT的 SQL 文件被截断,大概率是「工具 → 选项 → 数据网格 → 限制记录」在起作用(默认常为 1000),不是查询编辑器设置 -
SET autocommit = 0;+COMMIT;包裹整个 SQL 文件,能绕过逐条 INSERT 的结果渲染限制
导出 Excel 卡在 65535 行?这不是“最大行数”能解决的
导出按钮标着「Excel 2007+」,实际生成的是 .xls(Excel 97–2003)格式,硬性上限 65536 行(含表头)。改「最大行数」对此毫无影响,因为导出走的是另一套文件生成逻辑。
- 用命令行验证格式:
file your_exported_file.xls,若输出含BIFF8或Composite Document File V2,就是真 .xls - 真正需要超 65535 行的 Excel,必须绕过 Navicat 导出界面,用脚本处理,例如:
pandas.read_sql("SELECT * FROM t", conn).to_excel("out.xlsx") - Navicat 的「Excel 导出」本质是快速预览工具,不是报表交付方案
Navicat 的行数限制分散在至少三处:查询编辑器、数据网格、导出引擎,各自作用域不同,不能靠改一个设置一劳永逸。最容易被忽略的是「数据网格→限制记录」对 SQL 文件执行的影响——它不报错、不提示,只静默跳过超限后的语句。


















