Skip to content

选择接入数据库

数据墙DBW 支持三种关系型数据库:SQL Server、PostgreSQL 和 MySQL。三者在基本的 REST 数据操作上表现一致,但在 GraphQL 高级特性和数据库对象类型上存在差异。选择一个数据库时,既要考虑已有系统的技术栈,也要关注功能支持的完整度。

支持概览

数据库最低版本REST CRUDGraphQL 基本操作聚合多重变更视图存储过程
SQL Server2016全部全部支持支持支持支持
PostgreSQL11全部全部不支持不支持支持支持
MySQL8全部全部不支持不支持支持支持

三种数据库在 REST、GraphQL、视图、存储过程、关系、字段映射、缓存、健康检查和 MCP 工具方面全部支持。主要差异在于 GraphQL 聚合查询和多重变更仅 SQL Server 支持。

按功能选择

如果你的需求是全功能

选择 SQL Server。它是三个数据库中能力最完整的:

  • 支持 GraphQL 聚合查询(countsumavg 等)和多重变更。
  • 支持视图和存储过程作为 API 实体。
  • 支持会话上下文,可将 JWT 声明注入数据库查询,配合行级安全策略使用。
  • 支持 autoentities 自动实体发现,按模式匹配批量公开数据库对象。

如果你的应用需要服务端聚合统计、需要暴露已有存储过程、或需要细粒度的声明注入,SQL Server 是最佳选择。

如果你的技术栈在 PostgreSQL 上

选择 PostgreSQL。它在基础能力上与 SQL Server 持平:

  • REST CRUD、筛选、排序、分页、字段选择全部支持。
  • GraphQL 基本的查询和变更支持完整。
  • 支持视图和存储过程作为 API 实体。
  • 安全方面支持实体权限、字段过滤和数据库策略。

主要差异在于不支持 GraphQL 聚合和多重变更。如果你的场景以 REST 为主,或 GraphQL 使用场景为基础查询和变更,PostgreSQL 的表现和 SQL Server 没有明显差距。

如果你在 MySQL 环境下

选择 MySQL。它覆盖了最常见的需求:

  • REST CRUD、查询参数全部可用。
  • GraphQL 基本查询和变更支持完整。
  • 支持视图和存储过程作为 API 实体。
  • 安全方面支持实体权限、字段过滤和数据库策略。

如果主要使用表作为数据来源,MySQL 完全可以胜任。需要视图或存储过程暴露时同样可用。

按数据库对象选择

选择数据库时,也需要考虑你打算暴露哪些类型的数据库对象:

数据库对象SQL ServerPostgreSQLMySQL
支持支持支持
视图支持支持支持
存储过程支持支持支持

三种数据库均支持表、视图和存储过程作为 API 实体。

安全能力对比

安全能力SQL ServerPostgreSQLMySQL
实体权限(角色 + 操作)支持支持支持
字段级访问控制支持支持支持
数据库策略(行级过滤)支持支持支持
会话上下文(声明注入)支持不支持不支持

实体权限、字段控制和数据库策略三种数据库全部支持。会话上下文是 SQL Server 独有的能力——它能将 JWT 令牌中的声明自动传入数据库会话,在行级安全策略中通过 @claims 引用用户属性,实现声明驱动的数据过滤。

选择建议

你的情况推荐
新项目,无历史负担,需要全部功能SQL Server
已有 PostgreSQL 基础设施,功能需求集中在 RESTPostgreSQL
已有 MySQL 数据库,以 REST + 基础 GraphQL 为主MySQL
需要 GraphQL 聚合统计SQL Server
需要 GraphQL 多重变更SQL Server
需要会话上下文配合行级安全SQL Server

无论选择哪个数据库,数据墙DBW 都提供统一的配置方式和 API 形态。从开发到生产,操作体验一致。

下一步

数据墙DBW 产品文档与开发指南。