1.核心定位

openGauss是企业级开源关系型数据库,适配多核硬件与混合业务场景的关系型数据库产品,与PostgreSQL相比,他拥有更完善的事务处理机制,大大降低性能波动的概率;针对多核 CPU(尤其是 ARM 架构鲲鹏处理器)做了底层优化,解决传统数据库在 NUMA 架构下 “多核扩展瓶颈” 问题,可充分释放硬件算力。
从业务场景看,openGauss 重点瞄准金融、政务等对数据库 “高性能、高可靠、高安全” 要求严苛的领域,例如支撑银行核心交易系统、政务敏感数据存储等提供企业级数据库能力,打破商业数据库垄断。
在这里插入图片描述

2.核心优势

2.1. 高性能:两路鲲鹏 150 万 tpmC,NUMA 多核优化效果显著

2.1.1 NUMA 多核优化

通过线程绑核避免线程在不同 NUMA 节点间频繁切换,结合 NUMA 化数据结构改造(如分区 CLOG 缓冲池、并行 WAL 写入),减少跨节点内存访问延迟,解决传统数据库 “五把大锁”(Clog、WALInsert 等)的并发瓶颈;

2.1.2 智能执行技术

支持 SQL-Bypass 选路执行,简单查询可跳过复杂优化流程直接执行,减少计算开销;同时提供面向实时场景的内存引擎(MOT),免锁设计使事务延迟低至毫秒级;
智能执行技术的核心是 “让执行器更高效地运行计划”(如 LLVM 编译、向量化执行),而这依赖 SQL 处理流程输出的 “优化后物理执行计划”

例如,SQL 处理流程将 SELECT * FROM t1 WHERE age>30 解析为 SeqScan + Filter 算子” 的执行计划后,智能执行技术才能对 Filter 条件(age>30)启用 LLVM 编译,减少执行损耗

在这里插入图片描述
可以通过以下示例代码,开启 / 关闭 LLVM 动态编译,对比执行耗时(验证智能执行技术)

-- 1.1 创建大表并插入测试数据(模拟 10000数据,放大优化效果)
CREATE TABLE test_llvm_optimize (
    id BIGSERIAL PRIMARY KEY,
    value1 INT,
    value2 BIGINT,
    value3 VARCHAR(100),
    value4 NUMERIC(10,2)
);
 
-- 插入 10000条测试数据(可通过 generate_series 快速生成)
INSERT INTO test_llvm_optimize (value1, value2, value3, value4)
SELECT 
    random()*10000 AS value1,
    random()*10000 AS value2,
    'test_' || CAST(random()*10000 AS VARCHAR) AS value3,
    random()*10000.00 AS value4
FROM generate_series(1, 10000);
 
-- 1.2 关闭 LLVM 动态编译,执行复杂计算查询并记录耗时
SET enable_codegen = off; -- 关闭 LLVM
SELECT 
    value1,
    COUNT(*) AS cnt,
    SUM(value2) AS sum_val2,
    AVG(value4) AS avg_val4,
    MAX(value3) AS max_val3
FROM test_llvm_optimize
WHERE value1 BETWEEN 1000 AND 5000
GROUP BY value1
HAVING COUNT(*) > 50
ORDER BY sum_val2 DESC
LIMIT 100;
 
-- 1.3 开启 LLVM 动态编译,重复查询对比耗时
SET enable_codegen = on; -- 开启 LLVM
SELECT 
    value1,
    COUNT(*) AS cnt,
    SUM(value2) AS sum_val2,
    AVG(value4) AS avg_val4,
    MAX(value3) AS max_val3
FROM test_llvm_optimize
WHERE value1 BETWEEN 1000 AND 5000
GROUP BY value1
HAVING COUNT(*) > 50
ORDER BY sum_val2 DESC
LIMIT 100;

2.1.3 存储引擎适配

行存引擎优化随机读写(适合 OLTP),列存引擎通过向量化执行提升分析查询效率(适合 OLAP),混合场景下性能比单一引擎数据库高 30%~50%。

在这里插入图片描述

2.2 高可靠:RTO<10s,Paxos 协议保障主备切换一致性

RTO(恢复时间目标)<10s:在 60% 负载、70 万 + tpmC 压力下,主节点故障后,备节点可在 10秒内完成接管,业务中断时间短,满足金融交易、运营商计费等 “不能停” 的核心场景需求;

RPO(恢复点目标)=0:主备节点通过实时日志同步(WAL 日志即时传输),确保主节点故障时备节点无数据丢失,数据完整性 100% 保障。

2.3 高安全:全密态加密 + 防篡改账本,覆盖数据全生命周期防护

openGauss 针对 “数据上云”“敏感数据保护” 等企业痛点,构建了从 “传输 - 存储 - 计算 - 运维” 的全链路安全防护

2.3.1 全密态计算:数据 “可用不可见”:

基于可信执行环境(TEE,支持 Intel SGX 与华为鲲鹏 SEC),客户端将数据加密后传输至数据库,数据库在密态下完成等值查询、范围查询等计算,全程不接触明文;
采用 “根密钥 - 主密钥 - 列加密密钥” 三级密钥管理,密钥由 KMS 服务统一管控,避免密钥泄露风险,满足金融、政务等对数据隐私要求极高的场景(如医保数据、交易流水加密存储)。

2.3.2 防篡改账本:数据可追溯、不可篡改:

  • 支持创建 “账本表”,每笔数据增删改操作都会生成哈希摘要,记录到历史表与全局链中,通过哈希链校验可快速发现数据篡改;

实测中,对账本表数据的非法修改可在 10ms 内检测到,且能追溯修改人、修改时间、原始数据,满足审计合规要求(如金融行业反洗钱审计、政务数据溯源)。

2.3.3 多维度安全加固:

  • 传输加密:支持 SSL/TLS 协议,避免数据传输过程中被窃取;
  • 存储加密:支持数据文件透明加密,即使磁盘被盗也无法解析数据;
  • 访问控制:细粒度权限管理(列级权限、行级安全)+ 多维度审计日志,防止越权访问与恶意操作。
    在这里插入图片描述

2.4 易运维:AI 辅助调优、慢 SQL 诊断,降低 DBA 工作量

传统数据库运维(参数调优、慢 SQL 诊断、索引优化)依赖 DBA 经验,耗时且易出错,openGauss 通过 AI 技术实现 “自运维”,核心能力实测如下

2.4.1 AI 智能调优:

  • 基于强化学习模型,可根据 workload 特征自动推荐参数配置(如 shared_bufferswork_mem 等),无需
    DBA 手动调试;

实测中,对 TPC-C workload 的参数调优后,性能比默认配置提升 40%,调优时间从传统的 “数天” 缩短至 “小时级”。

2.4.2 慢 SQL 诊断与优化:

  • 支持慢 SQL 执行时间预测(准确率 99.37%),可提前识别上线业务中的潜在性能风险;
  • 提供 “SQL 透视” 功能,通过可视化界面展示 SQL 语句相似性与执行代价,快速定位慢 SQL 根因(如缺少索引、Join 顺序不合理);
  • 内置索引推荐工具(gs_index_advise

实测中为 lineitem 表推荐索引后,查询性能从 37888ms 提升至 1.85ms,性能提升超 2 万倍。

2.4.3 自动化运维工具:

  • 提供 OM(运维管理)工具,支持一键安装、扩容、备份恢复;
  • 内置 WDR 性能报告,可生成多维性能监控视图(CPU、IO、锁等待等),帮助
    DBA 快速定位性能瓶颈,减少 50% 以上的例行运维工作量。

可以通过下面的示例代码验证 “易运维” 优势:通过 gs_index_advise 工具(AI 驱动)自动推荐最优索引,避免 DBA 手动试错;

-- 3.1 创建无索引的大表(模拟慢 SQL 场景)
CREATE TABLE test_slow_sql (
    id BIGSERIAL,
    product_id INT,
    sale_date DATE,
    sale_count INT,
    sale_price NUMERIC(10,2)
);
 
-- 插入 50000条销售数据
INSERT INTO test_slow_sql (product_id, sale_date, sale_count, sale_price)
SELECT 
    random()*5000 AS product_id,
    CURRENT_DATE - (random()*730)::INT DAY AS sale_date,
    (random()*100)::INT + 1 AS sale_count,
    random()*1000.00 AS sale_price
FROM generate_series(1, 50000);
 
-- 3.2 执行慢 SQL(无索引,全表扫描)
EXPLAIN ANALYZE
SELECT 
    product_id,
    SUM(sale_count) AS total_sales,
    AVG(sale_price) AS avg_price
FROM test_slow_sql
WHERE sale_date BETWEEN '20243-01-01' AND '2024-12-31'
GROUP BY product_id
HAVING SUM(sale_count) > 1000;
 
-- 3.3 使用 openGauss 内置索引推荐工具(AI 辅助运维)
SELECT * FROM gs_index_advise(
    'test_slow_sql', -- 表名
    'SELECT product_id, SUM(sale_count) AS total_sales, AVG(sale_price) AS avg_price FROM test_slow_sql WHERE sale_date BETWEEN ''2024-01-01'' AND ''2024-12-31'' GROUP BY product_id HAVING SUM(sale_count) > 1000' -- 慢 SQL 语句
);
 
-- 3.4 按推荐创建索引后,重新执行查询(验证优化效果)
-- 假设推荐索引:(sale_date, product_id) INCLUDE (sale_count, sale_price)
CREATE INDEX idx_test_slow_sql_sale_date_product ON test_slow_sql (sale_date, product_id) INCLUDE (sale_count, sale_price);
 
-- 重新执行查询,对比耗时
EXPLAIN ANALYZE
SELECT 
    product_id,
    SUM(sale_count) AS total_sales,
    AVG(sale_price) AS avg_price
FROM test_slow_sql
WHERE sale_date BETWEEN '2024-01-01' AND '2024-12-31'
GROUP BY product_id
HAVING SUM(sale_count) > 1000;

3.总结与展望

openGauss 不只是个性能能打的开源数据库,开源化的核心推手。它靠 “技术自己能掌控”,打破了商业数据库的垄断;靠 “大家一起建开源生态”,帮企业降低了数字化转型的成本;还靠 “针对性解决场景问题”,搞定了企业核心业务里的痛点。

往后,随着智能技术、新硬件和安全需求深度结合,openGauss 大概率会成为 “下一代企业级数据库” 的标杆,给全球数据库技术发展和产业升级拿出我们的方案。

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐