GaussDB 数据库

GaussDB

银行和运营商用的大型数据库,把数据拆开放到很多台机器上跑。

存储与数据出现时间 · 2019 年前后按实例规格、节点数量与存储用量计费,金融级高可用配置价格更高。数据库分布式国产替代高可用
看官方文档

01 它是干嘛的

GaussDB 是华为自研的关系型数据库,主打分布式与高可用,主要面向银行核心交易、运营商计费等对稳定性和数据一致性要求极高的场景。它的定位是替代原来大量依赖的国外商用数据库,让关键系统不被单一供应商卡住。

02 为什么会有它

一个账本放不下的年代:单机数据库的天花板

传统数据库像一本大账本,所有数据都存在一台机器上。数据量小的时候很好用,但银行的交易记录、运营商的通话详单动辄几十亿条,一台机器既存不下也算不动;想加机器,数据又没法自动分过去。

更麻烦的是停机风险。单机数据库一旦出故障,整个业务就停摆。为了不出事,只能买越来越贵的高端机器,成本高到普通人不敢想。

而且过去很多关键系统的数据库来自国外厂商,授权费昂贵,一旦断供或被限制,换起来极其困难。GaussDB 的目标就是在这类场景里,提供一个能横向扩展、能自动容灾、并且自主可控的选择。

03 它怎么工作

分布式数据库的核心是「分片」:把一张大表按某个规则拆成很多小块,分散到不同机器上,查询时由协调节点把任务派出去,各机器并行执行后再汇总结果。

分布式数据库:扩容不用搬数据一条 SQL① 路由到对应分片② 加节点即扩容应用像连一个数据库一样协调节点按分片键找路计算节点 1负责部分数据计算节点 2负责部分数据计算节点 3新加的,几分钟接入共享存储所有节点看同一份数据传统做法扩容要把数据搬家(几小时),存算分离之后只是多挂一个计算节点(几分钟)。路由层可水平扩展的计算层
这张图重点看「一张表被拆成多份」与「协调节点汇总」两处:数据拆开带来了扩展能力,汇总这一步则保证了用户看到的仍是一张完整的表。

一条查询是怎么被拆到多台机器上跑的

  1. 1
    ① 解析 SQL

    数据库先读懂你写的那句查询想干什么,把它翻译成内部能处理的表示。

  2. 2
    ② 生成执行计划

    优化器比较几种可能的执行方式,挑一个最快的,这一步决定了查询的快慢。

  3. 3
    ③ 按分片键路由

    根据建表时指定的分片规则(如按用户编号),判断这次查询涉及哪些数据节点。

  4. 4
    ④ 各节点并行执行

    相关节点各自处理自己那份数据,互不等待,整体速度大幅提升。

  5. 5
    ⑤ 协调节点汇总

    把各节点的结果收集起来,做合并、排序、去重等收尾工作。

  6. 6
    ⑥ 返回结果

    最后把完整结果返回给应用,整个过程对使用者是透明的。

04 谁在用它

银行核心交易

账户、流水、转账等高频且要求强一致的场景,必须不出错、不停机。

运营商计费

海量通话与流量详单的存储与统计,对写入吞吐和数据规模要求极高。

政务与公共数据

需要长期稳定运行、数据不出境的系统,强调安全与自主可控。

大型企业 ERP

财务、供应链等对数据一致性要求高的系统,容不得数据错乱。

高并发订单

电商、票务等瞬时写入量大的业务,靠分片横向扩展顶住压力。

05 怎么用

对使用者来说,写 SQL 的方式和普通数据库几乎一样,难点在于建表时怎么选分片键。

  1. 01在云上购买 GaussDB 实例,选择规格、节点数与部署区域。
  2. 02连接数据库,按业务需要建表,并指定分片方式(如按主键哈希)。
  3. 03为常用的查询条件建索引,避免全表扫描拖慢速度。
  4. 04用参数化查询写业务代码,避免拼接字符串带来的注入风险。
  5. 05配置主备与备份策略,定期演练故障切换。
  6. 06观察慢查询与资源使用,持续调整索引与分片策略。
建一张按 id 分片的表并查询sql
-- 建一张分布式表,按 id 做哈希分片,分散到多个数据节点
CREATE TABLE orders (
  id         BIGINT PRIMARY KEY,
  user_id    BIGINT NOT NULL,
  amount     NUMERIC(12, 2),
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) DISTRIBUTE BY HASH(id);

-- 建索引,加速按用户查询
CREATE INDEX idx_orders_user ON orders(user_id);

-- 查询:数据库自动在各数据节点并行执行再汇总
SELECT user_id, SUM(amount) AS total
FROM orders
GROUP BY user_id
ORDER BY total DESC
LIMIT 10;

避坑提示

  • !分片键一旦选定后期很难更改,建表前务必想清楚最常用的查询维度。
  • !跨节点的分布式事务比单机昂贵,能避免就避免,尽量让一笔业务落在一个分片内。
  • !索引不是越多越好,写入频繁的表上放太多索引反而会拖慢写入。

06 关键概念

分片
把一张大表按规则拆成多块分散存储,是横向扩展的基础。
分布式事务
一笔操作涉及多台机器时,保证要么全部成功、要么全部回滚。
高可用
主节点故障时能自动切到备用节点,业务几乎不中断。
共享存储
多个计算节点共用一份底层数据,兼顾扩展与一致性的方案。

07 容易混淆的对比

Oracle老牌商业数据库,功能强大、生态成熟,但授权费高且存在供应风险。
OceanBase / PolarDB同为国产分布式数据库,在互联网与金融场景各有落地,思路相近。
图软件图鉴

纯静态站点,无后端、无追踪。内容为中文原创撰写,用于帮助非技术读者理解主流软件产品。

关于本站

全部内容在构建时生成
产品名称与商标归各自公司所有

© 2026 软件图鉴Nuxt 4 · Vue 3 · Tailwind 4 · 纯静态