Navicat 默认支持多标签页,但需先双击连接进入主界面才能启用New Query;各Query标签页共享同一连接会话,变量、事务等不隔离;真正隔离需新建独立连接。
Navicat 多窗口怎么开:不是功能开关,是窗口管理逻辑
navicat 本身没有“开启多窗口”的全局开关——它默认就支持多标签页,但很多人卡在第一次打不开第二个查询窗口,其实是误点了「新建查询」却没注意当前是否处于连接上下文里。
- 必须先双击左侧连接列表里的某个数据库连接(比如
127.0.0.1:3306),进入该连接的主界面后,Query标签或右键菜单里的New Query才有效;直接点顶部菜单栏的New Query在未激活连接时是灰色或无响应的 - 每个查询窗口本质是独立的
Query标签页,共用同一个连接会话(即事务、变量、临时表等不隔离),这不是 bug,是设计如此 - 想真正“隔离执行”,得手动新建另一个连接(比如复制一份连接配置,改个名字),再从那个连接打开新
Query
SQL 编辑器基础设置:改完立刻生效的关键项
编辑器行为不像外观设置那样需要重启,大部分改了就生效,但有三个位置最容易被忽略:
-
Preferences → Editor → SQL Editor里勾选Auto-completion和Show suggestions automatically,否则SELECT * FROM user打到us就停住,不会弹出表名提示 -
Preferences → Editor → General中把Line numbers和Highlight current line打开,不然调试长 SQL 时根本找不到光标在哪一行 -
Preferences → Editor → Execution下的Limit rows默认是 1000,查大表时容易误以为数据就这么多——建议改成0(不限制)或按需填,别留空
为什么执行 SQL 总卡住?常见阻塞场景和对应操作
不是 Navicat 卡,是 MySQL 服务端在等锁、刷盘或网络响应,但 Navicat 界面只显示“正在执行”,没提示你在等什么:
- 执行
UPDATE或DELETE后没点Commit(或没关自动提交),其他窗口查不到新数据,自己再执行一次相同语句会卡住——看右下角状态栏有没有Transaction字样 - 在
Query窗口里执行了没加WHERE的UPDATE,又手快点了Execute,这时别狂点停止,先去Server Monitor → Process List找到对应ID,右键Kill Process - 查询返回上万行结果时,Navicat 默认尝试全部加载进内存渲染表格,会假死——下次直接在语句开头加
LIMIT 500,或提前在Preferences → Data View → Grid里调低Maximum number of records to display
多个 Query 标签页之间如何安全切换和复用
标签页不是沙盒,它们共享连接状态,这点和浏览器 Tab 完全不同:
- 在一个标签页里执行了
SET @a := 1;,换到另一个标签页也能用SELECT @a;,但如果你关掉第一个标签页,变量就丢了——因为变量存在会话级内存里,不是 Navicat 存的 - 想快速复制当前查询内容到新标签页:右键标签页 →
Duplicate Tab,比 Ctrl+C/Ctrl+V 更可靠(尤其带中文或特殊符号时) - 不小心关错标签页?别慌,
File → Recently Closed Tabs里能找回最近关闭的 5 个,但仅限本次 Navicat 运行期间,重启就清空
最麻烦的是事务跨标签页隐形传递——一个标签页开启事务没提交,另一个标签页执行 DDL(比如 ALTER TABLE)就会卡死,且 Navicat 不报错也不提示锁源。这时候只能去 Process List 排查,而不是反复点重试。










