DBeaver - 我用过最好的数据库管理工具

DBeaver - 我用过最好的数据库管理工具

DBeaver - 开发者的数据库瑞士军刀

作为一个需要频繁与数据库打交道的开发者,我尝试过无数的数据库管理工具:Navicat、DataGrip、MySQL Workbench、pgAdmin…

但自从遇到 DBeaver,我就再也没有换过其他工具。

为什么选择 DBeaver

我的痛点

在使用 DBeaver 之前,我的数据库工具箱是这样的:

  • 💰 MySQL → Navicat(付费,贵)
  • 🐘 PostgreSQL → pgAdmin(界面难用)
  • 🔷 SQL Server → SSMS(只能在 Windows 上用)
  • 🐬 MongoDB → Robo 3T(功能有限)
  • Redis → RedisDesktop Manager(又要付费)

每次切换数据库,就要切换工具。每个工具的快捷键、界面逻辑都不一样,学习成本高,效率低下。

DBeaver 的解决方案

一个工具,管理所有数据库。

这不是夸张,DBeaver 真的支持 100+ 种数据库,从传统的关系型数据库到 NoSQL,从云数据库到大数据平台,几乎应有尽有。

项目数据

  • ⭐ Stars: 45.7k+
  • 🍴 Forks: 3.9k
  • 📝 License: Apache 2.0
  • ☕ 语言: Java (99.6%)
  • 🏗️ 架构: Eclipse RCP + OSGi

核心特性

1. 支持海量数据库 🗄️

社区版免费支持

关系型数据库

  • MySQL / MariaDB
  • PostgreSQL / TimescaleDB
  • Oracle / EnterpriseDB
  • SQL Server / Sybase
  • DB2 / Informix
  • SQLite / DuckDB
  • H2 / Derby / HSQLDB

云数据库

  • AWS Redshift / Athena / Timestream
  • Azure SQL / CosmosDB
  • Google BigQuery / Spanner
  • Snowflake / Databricks
  • Alibaba MaxCompute

大数据平台

  • Apache Hive / Impala / Spark
  • Apache Drill / Presto / Trino
  • Apache Kylin / Druid
  • ClickHouse / Apache Pinot

时序数据库

  • InfluxDB / TimescaleDB
  • TDEngine / IotDB

国产数据库

  • Dameng(达梦)
  • GaussDB(高斯)
  • GBase 8s
  • Kingbase(人大金仓)
  • OceanBase

PRO 版额外支持

  • MongoDB / Cassandra / Couchbase
  • Redis / InfluxDB
  • Elasticsearch / OpenSearch
  • Neo4j / AWS Neptune
  • 文件格式:CSV / XLSX / JSON / XML / Parquet

2. 强大的 SQL 编辑器 ✍️

作为开发者,我在 SQL 编辑器中的时间最长。DBeaver 的编辑器体验非常出色:

智能补全

1
2
3
4
5
6
7
-- 输入 "se" 自动提示 SELECT
-- 输入表名自动提示列名
-- 输入 JOIN 自动提示关联表
SELECT u.id, u.name, o.order_id
FROM users u
JOIN orders o ON u.id = o.user_id  -- 自动补全
WHERE u.created_at > '2024-01-01'

AI 集成

  • 支持 OpenAI GPT
  • 支持 GitHub Copilot
  • 自然语言生成 SQL
  • SQL 代码优化建议

格式化与美化

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
-- 格式化前
select u.id,u.name,o.order_id from users u join orders o on u.id=o.user_id where u.created_at>'2024-01-01'

-- 格式化后(Ctrl+Shift+F)
SELECT
    u.id,
    u.name,
    o.order_id
FROM
    users u
    JOIN orders o ON u.id = o.user_id
WHERE
    u.created_at > '2024-01-01'

语法高亮

  • 支持多种 SQL 方言
  • 自定义配色方案
  • 错误实时提示

3. 可视化数据编辑 📊

不需要写 UPDATE 语句,直接在表格中修改数据:

┌─────┬──────────┬───────────────┬────────┐
│ ID  │ Name     │ Email         │ Status │
├─────┼──────────┼───────────────┼────────┤
│ 1   │ Alice    │ [email protected]  │ active │ → 双击编辑
│ 2   │ Bob      │ [email protected]    │ active │
│ 3   │ Charlie  │ charlie@...   │ [null] │ → 右键设置为 NULL
└─────┴──────────┴───────────────┴────────┘

支持的操作

  • ✅ 增删改查(CRUD)
  • ✅ 批量编辑
  • ✅ 复制/粘贴行
  • ✅ NULL 值处理
  • ✅ 二进制数据编辑
  • ✅ JSON/XML 数据格式化

4. ER 图与数据库设计 🎨

自动生成 ER 图

右键数据库 → View Diagram → 自动生成关系图

┌──────────────┐         ┌──────────────┐
│   users      │         │   orders     │
├──────────────┤         ├──────────────┤
│ * id (PK)    │───1:N───│ * id (PK)    │
│   name       │         │   user_id(FK)│
│   email      │         │   total      │
│   created_at │         │   status     │
└──────────────┘         └──────────────┘

可视化设计

  • 拖拽创建表
  • 可视化定义关系
  • 一键生成 DDL
  • 对比数据库差异

5. 数据导入导出 📤📥

支持的格式

  • CSV / TSV
  • JSON / BSON
  • XML
  • Excel (XLSX)
  • HTML
  • SQL Insert 语句
  • Markdown Table

我的使用场景

1
2
3
4
5
6
7
8
9
# 场景 1: 导出生产数据到测试环境
SELECT * FROM users WHERE created_at > '2024-01-01'
→ 右键 → Export Data → SQL Insert

# 场景 2: 从 Excel 导入配置数据
右键表 → Import Data → 选择 Excel 文件

# 场景 3: 导出数据给产品经理
右键查询结果 → Export Data → Excel

6. SSH 隧道与代理 🔐

连接生产环境数据库的神器:

本地电脑 → SSH 跳板机 → 生产数据库
           (公网)      (内网)

配置步骤

  1. Connection Settings → SSH
  2. 配置跳板机地址和认证
  3. 自动建立隧道连接

支持的认证方式

  • 密码认证
  • SSH Key 认证
  • SSH Agent 认证

7. 执行计划分析 📈

优化慢查询的利器:

1
2
3
4
5
-- 查看执行计划
EXPLAIN ANALYZE
SELECT * FROM large_table
WHERE created_at > '2024-01-01'
AND status = 'active';

可视化展示

  • 树状结构显示
  • 每个节点的成本
  • 扫描行数统计
  • 建议添加的索引

我的实际使用场景

场景 1: 多数据库项目开发

我参与的一个项目同时使用了:

  • PostgreSQL - 主业务数据
  • MongoDB - 日志存储
  • Redis - 缓存
  • ClickHouse - 数据分析

传统方式:需要 4 个工具,来回切换

使用 DBeaver:一个窗口,多个连接标签,随时切换

场景 2: 数据库迁移

从 MySQL 迁移到 PostgreSQL:

  1. 对比结构:Database → Compare → 找出差异
  2. 导出数据:Export Data → CSV
  3. 调整 SQL:修改数据类型和语法
  4. 导入数据:Import Data → PostgreSQL

整个过程在 DBeaver 中一气呵成。

场景 3: 生产环境排查

凌晨 2 点,生产环境报警:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 快速连接(通过 SSH 隧道)
1. 打开 DBeaver
2. 选择生产连接
3. 执行诊断查询

SELECT * FROM slow_query_log
WHERE query_time > 5
ORDER BY start_time DESC
LIMIT 10;

# 查看执行计划
EXPLAIN ANALYZE ...

# 修复后验证
SELECT COUNT(*) FROM ...

关键优势

  • 保存的连接配置,秒级连接
  • 历史 SQL 查询记录
  • 快捷键操作,效率高

场景 4: 数据分析与报告

产品经理:“能给我一份上个月的用户增长数据吗?”

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
-- 编写查询
SELECT
    DATE(created_at) as date,
    COUNT(*) as new_users,
    COUNT(DISTINCT email) as unique_users
FROM users
WHERE created_at >= DATE_SUB(NOW(), INTERVAL 1 MONTH)
GROUP BY DATE(created_at)
ORDER BY date;

-- 导出为 Excel
右键结果  Export  Excel  发送给产品

场景 5: 学习新数据库

最近项目要用 ClickHouse,我不熟悉:

  1. DBeaver 安装 ClickHouse 驱动(自动下载)
  2. 连接测试环境
  3. 查看表结构、索引、分区信息
  4. 运行示例查询,学习语法
  5. 对比与 PostgreSQL 的差异

学习效率提升 10 倍

实用技巧

1. 快捷键

我最常用的快捷键:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# SQL 编辑
Ctrl + Enter      # 执行当前语句
Ctrl + \          # 执行全部
Ctrl + Shift + F  # 格式化 SQL
Ctrl + Space      # 代码补全
Ctrl + /          # 注释/取消注释

# 导航
Ctrl + F7         # 切换 Tab
Alt + Left/Right  # 前进/后退
Ctrl + Shift + ]  # 下一个连接
Ctrl + Shift + [  # 上一个连接

# 数据编辑
Ctrl + C/V        # 复制/粘贴
Ctrl + D          # 复制行
Ctrl + Delete     # 删除行
F2                # 编辑单元格

2. 自定义模板

创建常用 SQL 模板:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
-- 模板 1: 查询前 N 条
SELECT * FROM ${table} LIMIT ${n};

-- 模板 2: 按时间查询
SELECT * FROM ${table}
WHERE ${date_column} BETWEEN '${start_date}' AND '${end_date}';

-- 模板 3: 分页查询
SELECT * FROM ${table}
ORDER BY ${order_column}
LIMIT ${page_size} OFFSET ${offset};

使用:输入缩写 → Tab → 填充变量

3. SQL 脚本管理

Project/
├── scripts/
│   ├── schema/
│   │   ├── create_tables.sql
│   │   └── alter_tables.sql
│   ├── data/
│   │   ├── seed_data.sql
│   │   └── test_data.sql
│   └── queries/
│       ├── analytics.sql
│       └── reports.sql

在 DBeaver 中:

  • 按项目组织 SQL 文件
  • Git 版本控制
  • 团队共享

4. 结果集处理

1
2
3
4
5
6
7
8
-- 执行查询
SELECT * FROM large_table;

-- 结果集操作
1. 过滤:点击列头  设置过滤条件
2. 排序:点击列头  升序/降序
3. 统计:选中列  右键  Calculate Statistics
4. 复制:选中数据  Ctrl+C  粘贴到 Excel

5. 批量操作

批量重命名表

1
2
3
4
5
6
-- 生成 SQL
SELECT CONCAT('ALTER TABLE ', table_name, ' RENAME TO new_', table_name, ';')
FROM information_schema.tables
WHERE table_schema = 'public';

-- 复制结果 → 执行

批量修改字段

1
2
3
SELECT CONCAT('ALTER TABLE ', table_name, ' ALTER COLUMN id TYPE BIGINT;')
FROM information_schema.tables
WHERE table_schema = 'public';

高级功能

1. 多连接执行

同时在多个数据库执行相同的查询:

1
2
3
4
5
6
-- 选择多个连接
-- 编写查询
SELECT COUNT(*) FROM users;

-- Ctrl + Shift + Enter
-- 在所有选中的数据库中执行

适用场景:

  • 多租户系统数据统计
  • 分库分表数据聚合
  • 多环境数据对比

2. Mock Data 生成

生成测试数据

1
2
3
4
5
6
7
-- 右键表 → Generate SQL → INSERT
-- 自动生成 INSERT 语句
INSERT INTO users (id, name, email) VALUES
(1, 'User_1', '[email protected]'),
(2, 'User_2', '[email protected]'),
...
(1000, 'User_1000', '[email protected]');

支持:

  • 随机字符串
  • 随机数字
  • 随机日期
  • UUID 生成
  • 自定义规则

3. 数据库元数据搜索

全局搜索

Ctrl + H → 输入关键词

搜索范围:
- 表名
- 列名
- 视图
- 存储过程
- 触发器
- 索引

案例

  • 找到所有包含 “user_id” 的表
  • 找到所有使用 “email” 字段的地方
  • 找到所有包含 “created_at” 的索引

4. ERD 反向工程

从现有数据库生成文档

  1. 右键数据库 → View Diagram
  2. 调整布局
  3. 导出为图片(PNG/SVG)
  4. 生成 HTML 文档

用途

  • 项目文档
  • 新人培训
  • 架构评审
  • 数据库重构

5. 自定义驱动

连接特殊数据库

Database → Driver Manager → New
- 下载 JDBC 驱动
- 配置连接参数
- 测试连接

我用它连接过:

  • 自研的内部数据库
  • 嵌入式数据库
  • 特殊版本的 MySQL

配置建议

我的配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 性能优化
dbeaver.sql.resultset.maxrows=10000  # 结果集限制
dbeaver.sql.execute.timeout=30       # 执行超时(秒)

# 编辑器
dbeaver.sql.format.keyword=upper     # SQL 关键字大写
dbeaver.sql.format.indent=4          # 缩进 4 空格

# 自动保存
dbeaver.auto.save.enable=true        # 启用自动保存
dbeaver.auto.save.interval=60        # 每 60 秒保存

外观主题

Dark Theme(护眼):

  • Window → Preferences → Appearance
  • Theme → Dark

字体

  • 编辑器字体:Monaco / Consolas / Fira Code
  • 结果集字体:系统默认

快捷键定制

我的自定义

Execute SQL          : Cmd + R      (macOS)
Format SQL           : Cmd + Shift + F
New SQL Editor       : Cmd + N
Close Tab            : Cmd + W

与其他工具对比

特性DBeaverNavicatDataGripMySQL Workbench
价格免费$199+$199/年免费
多数据库100+20+20+MySQL only
SQL 补全
AI 集成
ER 图
SSH 隧道
开源
跨平台
学习曲线

我的选择理由

  1. 免费开源 - 无需盗版,无需付费
  2. 支持全面 - 一个工具管理所有数据库
  3. 功能强大 - 不输商业工具
  4. 社区活跃 - 问题能快速解决
  5. 持续更新 - 每月都有新版本

注意事项

1. 性能问题

大表查询

1
2
3
4
5
-- 不要直接 SELECT *
SELECT * FROM huge_table;  -- ❌ 可能卡死

-- 加上 LIMIT
SELECT * FROM huge_table LIMIT 1000;  -- ✅ 安全

配置限制

  • Preferences → Editors → SQL Editor
  • Max rows: 10000
  • Query timeout: 30s

2. 内存占用

DBeaver 基于 Eclipse,内存占用较大:

优化方法

1
2
3
# 编辑 dbeaver.ini
-Xms256m      # 初始内存
-Xmx2048m     # 最大内存(根据实际情况调整)

3. 连接管理

不要保存密码在明文

  • 使用 SSH Key 认证
  • 使用 Master Password
  • 使用密钥管理器

4. 慎用生产环境

安全建议

  • 只读账号连接生产库
  • 开启 SQL 确认提示
  • 备份重要操作的数据
  • 使用事务操作

安装与入门

安装

官方下载:https://dbeaver.io/download/

支持平台

  • Windows
  • macOS
  • Linux

包管理器安装

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# macOS
brew install --cask dbeaver-community

# Windows (Chocolatey)
choco install dbeaver

# Linux (Snap)
sudo snap install dbeaver-ce

# Arch Linux
yay -S dbeaver

首次使用

  1. 创建连接:Database → New Database Connection
  2. 选择数据库类型:MySQL / PostgreSQL / …
  3. 配置连接参数:Host / Port / Database / User / Password
  4. 测试连接:Test Connection
  5. 保存:Finish

学习资源

  • 官方文档:https://dbeaver.io/docs/
  • Wiki:https://github.com/dbeaver/dbeaver/wiki
  • YouTube 教程:DBeaver Official Channel
  • 社区论坛:https://github.com/dbeaver/dbeaver/discussions

总结与推荐

我为什么离不开 DBeaver

使用 DBeaver 三年了,它已经成为我开发工具链中不可或缺的一部分:

  1. 效率提升 - 一个工具管理所有数据库,节省大量切换时间
  2. 学习成本低 - 统一的界面逻辑,学会一次,到处适用
  3. 功能全面 - 从查询到设计,从导入到分析,应有尽有
  4. 免费开源 - 不用担心版权问题,社区支持好
  5. 持续进化 - AI 集成、新数据库支持,一直在进步

适合人群

强烈推荐

  • 后端开发者
  • 数据库管理员
  • 数据分析师
  • 需要管理多种数据库的团队
  • 预算有限的个人开发者

⚠️ 可能不适合

  • 只用一种数据库的简单场景
  • 需要极致性能的专业 DBA
  • 不熟悉 Java/Eclipse 生态的用户

我的评分

  • 功能性: ⭐⭐⭐⭐⭐ (5/5)
  • 易用性: ⭐⭐⭐⭐☆ (4/5)
  • 性能: ⭐⭐⭐☆☆ (3/5)
  • 稳定性: ⭐⭐⭐⭐☆ (4/5)
  • 社区: ⭐⭐⭐⭐⭐ (5/5)

总分: 4.2/5

最后的建议

  1. 花一天时间熟悉 - 值得投资
  2. 配置好快捷键 - 效率翻倍
  3. 学习 SQL 模板 - 重复工作自动化
  4. 加入社区 - 遇到问题有人帮
  5. 尝试 PRO 版 - 如果需要 NoSQL 支持

相关资源

  • 官网:https://dbeaver.io/
  • GitHub:https://github.com/dbeaver/dbeaver
  • 最新版本:25.2.2 (2025-10-05)
  • CloudBeaver:Web 版的 DBeaver
  • 社区版 vs PRO:https://dbeaver.com/edition/

总之,如果你还在为管理多个数据库工具而烦恼,如果你还在为 Navicat 的价格而犹豫,如果你想要一个功能强大又免费的数据库工具,那么 DBeaver 就是你的最佳选择!

给它一个机会,你不会后悔的!🚀