MateClaw 中文文档 下载 App

四种数据库选型——H2、PostgreSQL、MySQL、KingbaseES 怎么选

选择建议先给结论

场景推荐
本地快速体验、开发H2
生产部署、Docker 栈PostgreSQL 16
已有 MySQL 环境MySQL 8
国产数据库合规要求KingbaseES

MateClaw 是 Spring Boot 项目,通过 Spring profile 切换数据库。Flyway 负责 schema 迁移,按数据库方言管理版本。

H2(开发/桌面端默认)

零配置——什么都不用设,启动就跑。数据库文件在 data/mateclaw.mv.db,默认文件数据库。

优点:零配置、速度快、单文件方便备份。缺点:不支持并发连接(桌面端单用户无所谓,但多用户会锁库)。

常见问题:锁文件残留导致下次启动报 H2 锁错误。解决:删掉 data/mateclaw.mv.db.lock,或者直接清空 data/ 目录重新开始。

PostgreSQL 16(生产首选)

MateClaw 的公开 Docker 栈默认就用 PostgreSQL 16。支持并发、事务完整、扩展丰富(比如 pg_trgm 模糊搜索、pgvector 向量搜索可以配合 Wiki 的语义检索)。

Flyway migration 里有 PostgreSQL 专属的 DDL——某些表结构(比如 JSONB 字段)只在 PostgreSQL 下创建。

MySQL 8

如果你已经有 MySQL 环境不想迁移,MateClaw 通过 profile 继续支持 MySQL 8。Flyway 会自动切换 MySQL 方言的 migration 脚本。

KingbaseES

国产数据库环境下用。驱动按需启用(不是默认打包在 JAR 里——需要自己加依赖或者用 MateClaw 提供的专用 profile)。

KingbaseES 兼容 PostgreSQL 的 SQL 子集,大部分 PostgreSQL migration 脚本可以直接跑。