⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 http://www.iocoder.cn/Fight/yikuanxiandaihuaqingliangjikuapingtaidekaiyuanshujukuguanlikehuduan/ 「芋道源码」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

手头常驻好几个数据库客户端,MySQL、PostgreSQL、Redis 各有分工,偶尔还要翻 SQLite 或连 MongoDB。

工具链一长,问题就来了:DataGrip 功能最全但要订阅费,TablePlus 买断价还行但国产数据库支持一般,DBeaver 免费但启动要等小半分钟,界面也有点上个时代。

最让人烦的是 Electron。大多数”现代”数据库工具都用它打包,出来 150MB 起步,开几个连接内存就冲上去了。Chromium 不是免费的,只是把账单挪给了用户的内存条。

GoNavi 的思路不同:Go 后端 + Wails + React,二进制包 10MB 量级,启动快,内存低。

为什么又造一个数据库客户端

市面上不缺数据库客户端,但满足”轻量 + 多数据源 + 国产数据库支持 + 不收费”这四个条件的,几乎没有。GoNavi 瞄准的就是这个空白。

定位:快、稳、统一

GoNavi 面向开发者与 DBA,核心目标是让数据库操作在桌面端做到统一体验:

  • 原生性能架构:Wails(Go + WebView),不走 Electron,运行时开销大幅降低
  • 大数据可用性:虚拟滚动 + DataGrid 优化,百万行结果集照样操作
  • 统一连接:URI 生成/解析、SSH 隧道、代理、驱动按需安装
  • 工程化完整:SQL 编辑、对象管理、批量导出/备份、数据同步、执行日志、在线更新

数据源覆盖:内置 4 个,扩展全覆盖

主程序内置 MySQL、PostgreSQL、Oracle、Redis,装好即用。

其他数据源走「可选驱动代理」——驱动管理器里安装对应驱动后使用。主程序不打包所有驱动,用什么装什么,保持安装包轻量。

驱动代理支持:MariaDB、SQL Server、Doris、SQLite、DuckDB、MongoDB、TDengine、ClickHouse、Sphinx。国产数据库覆盖了达梦、金仓、瀚高、Vastbase——同类开源工具里比较少见。

还有 Custom Driver/DSN 接入口,自定义 Driver + DSN 字符串可扩展到其他数据源。

DataGrid:百万行不卡

DataGrid 是日常用得最多的组件,GoNavi 在这块下了功夫:

  • 虚拟滚动:只渲染可视区域的行,内存占用恒定
  • 就地编辑:双击单元格直接改,Ctrl+S 提交
  • 大字段折叠:TEXT/BLOB 类型默认折叠显示,点击展开
  • 多格式导出:CSV、JSON、SQL INSERT、Excel

百万行查询结果滚动不卡顿——这在 Electron 系工具里几乎不可能做到。

SQL 编辑器

  • 语法高亮 + 自动补全(表名、字段名、关键字)
  • 多标签页:同时开多个查询窗口
  • 执行计划可视化:EXPLAIN 结果直接图形化展示
  • 历史记录:自动保存执行过的 SQL

连接管理:SSH 隧道 + URI 解析

连接配置支持标准 URI 格式,比如 mysql://user:pass@host:3306/dbname,粘贴进去自动解析。

SSH 隧道内置支持,不需要额外开终端先建隧道。支持密码和私钥两种认证方式。

AI 助手

内置 AI 对话功能,接入方式是标准的 API Key 配置,支持 OpenAI、Google Gemini、Anthropic Claude,也支持自定义 API 地址,接本地模型没问题。

核心用法是把表结构挂到对话上下文里,然后用自然语言描述你想查什么,AI 生成 SQL。这比直接对着空白对话框问要准确得多,因为它知道你的表有哪些字段、什么类型。

斜杠命令做了几个常用场景的快捷方式:生成 SQL、解释当前查询、优化性能、审查表结构设计。/explain 直接解释选中的 SQL。

实测效果:简单查询生成准确率不错,复杂联表查询偶尔需要手动修正。比没有强,但别期望它能替代你写 SQL 的能力。

Redis 管理

不只是关系数据库——GoNavi 对 Redis 也做了专门的管理界面:

  • 键值浏览:Tree 视图 + 扁平视图切换
  • 数据类型识别:String/Hash/List/Set/ZSet 自动识别并展示
  • TTL 管理:直接修改过期时间
  • 批量操作:批量删除、导出

几个有用的细节

  • 便携模式:整个程序可以放 U 盘,换电脑直接用
  • 主题切换:深色/浅色一键切换
  • 多语言:支持中英文
  • 在线更新:应用内直接检查和安装更新

和同类工具怎么选

工具 优势 不足
GoNavi 轻量(10MB)、国产库支持好、免费 功能深度还在完善
DataGrip 功能最全、JetBrains 生态 订阅制收费、资源占用高
DBeaver 免费、插件丰富 启动慢、界面老
TablePlus 界面美、响应快 国产库支持弱、高级功能收费
Navicat 稳定、企业认可度高 价格贵、界面传统

如果你同时需要管理 MySQL + Redis + 国产数据库,又不想付费,GoNavi 是目前为数不多的选择。

开源地址

GitHub:https://github.com/o8x/GoNavi

文章目录
  1. 1. 为什么又造一个数据库客户端
  2. 2. 定位:快、稳、统一
  3. 3. 数据源覆盖:内置 4 个,扩展全覆盖
  4. 4. DataGrid:百万行不卡
  5. 5. SQL 编辑器
  6. 6. 连接管理:SSH 隧道 + URI 解析
  7. 7. AI 助手
  8. 8. Redis 管理
  9. 9. 几个有用的细节
  10. 10. 和同类工具怎么选
  11. 11. 开源地址