GaussDB 数据库分析

GaussDB 数据库分析

技术教程gslnedu2024-12-20 10:01:2316A+A-

GaussDB:开源数据库。华为的 Gauss 数据库是一个开源数据库,基于 PostgreSQL9.2 开发。我们知道 PostgreSQL 本身就是一个开源数据库品牌。

分布式:

GaussDB:三大产品线系列。高斯数据库研发始于 2011 年。目前已经开发有三个产品系 列:GaussDB 100、GaussDB 200、GaussDB 300。

GaussDB 100:主要以 OLTP 为主。GaussDB 100 研发开始于 2011 年,与后面的 GaussDB 200/300 不同,GaussDB 100 并不是一个分布式数据库。GaussDB 100 包括 两条线,一条产品线是基于单机版开源数据库 PostgreSQL 研发的产品,另一条线是自研 内核的 GaussDB 100 产品。后面这一条线是近几年华为研发的产品。目前该产品已经应 用在招商银行。 GaussDB 100 主要是 OLTP,即事务型数据库。

GaussDB 200:以 OLAP 为主,兼顾 OATP。华为 GaussDB 200 开始于 2012 年,在基 于传统关系型数据库的 SQL 引擎和事务强一致性等基础上,进行了分布式、并行计算的 改造。历时 6 年,打造了一款架构领先的分析型数据库,为各行业 PB 级海量数据分析提 供有竞争力的解决方案。GaussDB 200 既可以适用于 OLTP,也可以应用于 OLAP。

GaussDB 300:: HTAP,OLTP 和 OLAP。GaussDB 300 是一个分布式并行关系型数据 库系统,是企业级分布式 HTAP 数据库(Hybrid Transaction and Analytical Process,混 合事务和分析处理)。GaussDB 300 架构上着重构筑传统数据库的企业级能力和互联网分 布式数据库的高扩展和高可用能力,完全兼容 SQL 标准,提供百万级 TPMC 的交易处理 能力和企业级可靠性。

GaussDB 200/300 都是基于开源数据库 PostgreSQL 研发,虽然是基于开源数据库,但 已经对开源代码进行了大量修改,在很大程度上接近于自研。GaussDB 200/300 既可以 支持 OLTP 也可以支持 OLAP,也是华为投入精力最大、研发时间最长的产品线。目前已 经在工商银行和民生银行应用。

GaussDB在工商银行的使用,


GaussDB数据库目前在建行也在使用和推广中,目前主要在信用卡的国产化改造中使用。根据官方的介绍是:依托GaussDB强大的数据存储与处理能力,为信用卡核心系统提供高性能和安全可靠的综合表现。GaussDB是进行了联机分析类交易。此外建行也在进行GoldenDB、OceanDB使用,并且建信金科开发了以Mysql开源为基础的自己的分布式数据库。


下面列了一下Oracle和 GaussDB的SQL语法差异

Oracle

GaussDB

类别

子类

描述/相关语法

是否兼容

描述说明

DML

INSERT

兼容SQL标准的INSERT语句:single_table_insert: INSERT into_caluse values_clause|subquery


UPDATE

兼容SQL标准的UPDATE语句:UPDATE table_clause SET where_clause returning_clause;


DELETE

兼容SQL标准的DELETE语句:DELETE FROM table_expr where_clause returning_clause;


MERGE INTO

普通的MERGE INTO语句:MERGE INTO table USING table ON condition WHEN MATCHED UPDATE WHERE WHEN NOT MATCHED INSERT WHERE


SELECT

兼容SQL标准的SELECT语句:SELECT … FROM … WHERE.. GROUP BY .. ORDER BY .. HAVING … LIMIT ..


START WITH CONNECT BY

使用WITH RECURSIVE递归改写

集合操作


排序


AP函数CUBE ROLLUP


外连接操作符(+)


DUAL表


对象

index

btree索引


bitmap索引(将rowid以bitmap形式储存)


partitioned索引(包含分区,每个分区包含索引列出现的每个值)


表达式索引

支持,语法不同

domain索引(具体应用相关的类型的索引)


package

包括编程对象、存储过程、函数的合集


database link

访问其它数据库的功能

通过EC实现类似功能

table

符合SQL标准的基本表功能


其它表属性,例如:shareded table, duplicated, on commit选项

部分兼容

部分存储参数、关键字存在差异

partition

range分区


list分区


hash分区


多层分区


trigger

触发器

支持,语法不同

role

包含某些权限的角色

支持,语法不同

user

使用数据库的用户


statistic

单列统计信息

支持,语法不同

多列统计信息

支持,语法不同

表达式统计信息


tablespace

符合SQL标准的基本表空间功能


其它表空间属性,例如:undo/permanent/temporary选项


tablespace set,逻辑存储单元


schema

oracle使用create schema语句同时创建多个表和视图,以及赋权操作

支持,语法不同

sequence

SQL标准支持的sequence用法


其它sequence选项,例如:cycle, keep, order, global


audit

对登录和SQL语句进行审计

支持,语法不同

procedure/function

SQL标准支持的函数定义语法


将Java/library纳入数据库对象进行管理


view

符合SQL标准的基本视图功能


updatable view(可更新视图)



synonym

同义词



directory

目录


点击这里复制本文地址 以上内容由朽木教程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

朽木教程网 © All Rights Reserved.  蜀ICP备2024111239号-8