真的再见 Navicat 了,这次我选了 DBX

标题没有夸张,也不是标题党。用了十几年的 Navicat,这次是真的把它卸载了。达梦、金仓这些国产库越来越常出现在项目里,老牌客户端对它们的支持却一直是短板,源厂商提供的客户端也是一样难尽。这次索性换成了一个完全开源的 DBX

DBX 是什么

一句话:15 MB 大小,覆盖 60 多种数据库,完整开源,Apache-2.0 协议。

它支持的关系型数据库基本把常见的都盖住了:MySQL、PostgreSQL、SQL Server、Oracle、SQLite 这些不用多说;国产这块反而是它的亮点,达梦、OceanBase、人大金仓、GaussDB、崖山、GBase 都能直连,这正是我之前吐槽的短板。

非关系型数据也没落下,Redis 和 MongoDB 各自配了专门的浏览器界面,不是套一层通用 JSON 查看器糊弄过去。

Redis 那边能直接看 Hash、List、Set、ZSet、Stream 这些结构,TTL 也能直接改。MongoDB 是树状展开加 JSON 视图,增删改查走可视化面板,不用手写 db.collection.find()

离离原上谱,支持 Nacos 管理

为什么能塞进 15 MB

老实说这点我没指望它跟 Navicat 拼工业级建模能力,但日常开发够用的东西它一个不少:语法高亮、自动补全、格式化、多标签页、结果集编辑,这些 DataGrip 和 Navicat 有的它基本都有。

体积能压到 15 MB,说白了是没走 Electron 或者 JVM 那条老路。桌面壳子用的是 Tauri,调用系统自带的浏览器内核,不用自己打包一个进去;后端是 Rust 写的,没有垃圾回收,内存占用天然就低。

安装包小只是表面,运行时的差距更实在:同样开着连几个数据库,Navicat 和 DataGrip 的内存占用会一路往上爬,DBX 常驻后台几乎感觉不到它在跑。

真正让我心动的是 AI 这块

前面说的都是”够用”,AI 能力才是这次真正说服我的地方,这块分两层。

第一层是编辑器里直接嵌入的助手。SQL 框里选中一段代码,会弹出一个操作菜单:生成 SQL、解释 SQL、优化 SQL、修复错误、转换方言、生成样例。

不想自己拼语法的时候,一句自然语言描述过去,AI 直接把 SQL 写出来;接手一段十几层嵌套的历史查询看不懂,选中让它解释一遍;换个数据库方言不用重写,直接让它转换。这些都是编辑器内的操作,不涉及外部调用。

第二层才是真正让我心动的地方:MCP,让外部的 AI 助手直接连上数据库。DBX 自带一个 MCP server,包名叫 @dbx-app/mcp-server,装完往 Claude Code 或者 Cursor 的 .mcp.json 里加几行就能用:

1
2
3
4
5
6
7
{
"mcpServers": {
"dbx": {
"command": "dbx-mcp-server"
}
}
}

配好之后,AI 助手手里一共多了 9 个工具,管连接、管表结构、管查询都覆盖到了,最常打交道的是这几个:

工具 作用
dbx_list_connections 列出已配置的数据库连接
dbx_list_tables 列出某个连接下的表和视图
dbx_describe_table 获取表的列定义
dbx_get_schema_context 输出适合喂给模型的紧凑表结构上下文
dbx_execute_query 执行 SQL,最多返回 100 行
dbx_execute_redis_command 执行 Redis 命令

用起来大概是这个流程:往 Cursor 里丢一句”看看 orders 表最近一周状态异常的订单有哪些”,AI 自己调 dbx_list_tables 认出 orders 表,再调 dbx_get_schema_context 拿到字段定义,写 SQL、执行、把结果整理成人话讲出来。SQL 从头到尾不用自己敲。

总结

Navicat 那套数据建模工具、Schema 版本迁移、定时任务调度,确实是攒了二十年的家底,DBX 现在是比不了。

但我越来越怀疑这些功能还有多刚需。表结构想理清楚,把 schema 丢给 AI 就能生成一份说明;两个环境的结构对不上,AI 一样能比对出差异、写好迁移脚本;要定时跑的同步任务,一个脚本加 cron 就解决了,不用非得在客户端里配一整套图形化调度。

以前这些活确实得靠重型软件包办,现在很大一部分被 AI 接了过去。工具越做越轻反而更划算,这也是 DBX 这类客户端优势会越来越明显的原因。

工具这东西,以后拼的可能不是谁的历史更悠久,而是谁跟 AI 配合得更顺。