DM8和PostgreSQL 14对比

#两者概述

     DM8具有开放的、可扩展的体系结构、易于使用的事务处理系统,以及低廉的维护成本。DM8是达梦公司在总结DM系列产品研发与应用经验的基础上,坚持开放创新、简洁实用的理念,推出的新一代自研数据库。DM8吸收借鉴当前先进新技术思想与主流数据库产+品的优点,融合了分布式、弹性计算与云计算的优势,对灵活性、易用性、可靠性、高安全性等方面进行了大规模改进,多样化架构充分满足不同场景需求,支持超大规模并发事务处理和事务-分析混合型业务处理,动态分配计算资源,实现更精细化的资源利用、更低成本的投入。一个数据库,满足用户多种需求,让用户能更加专注于业务发展。

    

    PostgreSQL以加州大学伯克利分校计算机系开发的 POSTGRES 为基础, 是一个功能强大的开源对象关系数据库管理系统。PostgreSQL 由 PostgreSQL 全球开发集团(全球志愿者团队)开发。 它不受任何公司或其他私人实体控制。它是开源的,其源代码是免费提供的。PostgreSQL是跨平台的,可以在许多操作系统上运行。

    PostgreSQL支持大部分 SQL 标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、 索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免 费使用、修改和分发 PostgreSQL。

下面我将以表格的形式进行两者的对比,这样看起来更加直观明了。

#整体对比

DM8和PG14整体比较

项目

具体内容

PG14

DM8

备注

起源地

起源高校

加州大学伯克利分校计算机系

华中科技大学数据库与多媒体研究所

操作系统

Windows

linux

其他,如UNIX、SOLARIS、AIX等

国内操作系统,如麒麟、统信UOS等

国产芯片飞腾、龙芯、鲲鹏等

功能比较

数据类型

用户管理

模式管理

基表管理

数据操作

视图管理

索引管理

全文索引管理

存储过程

存储函数管理

触发器管理

包管理

序列管理

同义词

类管理

域管理

表空间管理

SQL函数

系统动态视图

外部链接-dblink

物化视图

外部存储过程

系统包

数据分区

大数据装载方案

编程接口

SQL92入门级/过渡级

ODBC

JDBC

.NET PROVIDER

PHP

DBEXpress

Python

NodeJS

PDO

Hibernate

OCI

OCCI

OO4O

libsqlora8

QOCI

#基础功能对比

                    

编号

项目

DM8

PostgreSQL14

1

数据库/实例

DM8中一个实例对应一个库,允许一台机器上同时运行多个实例。但是在 DM 共享存储集群(DMDSC)中,多个实例可以同时装载并打开一个数据库。

一个实例下有多个数据库,每个数据库之间是完全独立的,允许一台机器上同时运行多个实例。

2

数据类型

支持数值类型、日期/时间类型和字符串(字符)类型、布尔类型、多媒体类型、自增列、bit类型、自定义类型、XML数据类型、空间数据类型、JSON类型、序列、带时区时间类型、数组类型、记录类型、集合类型、类类型、%TYPE、%ROWTYPE还可以用户自定义子类型。

支持数值类型、日期/时间类型和字符串(字符)类型、多媒体类型、自增列、bit类型、自定义类型、XML数据类型、UUID类型、空间数据类型、货币类型、几何类型、JSON 类型布尔类型、枚举类型、网络地址类型、位串类型、文本搜索类型、复合类型、数组类型、范围类型、域类型、二进制数据类型、对象标识符类型、pg_lsn类型、伪类型

3

数据类型别名

支持

支持

4

支持普通表、分区表(RANGE分区、LIST分区、HASH分区、子分区、垂直分区、组合分区等)、列存表、临时表、对象表、堆表、外部表;支持表截断。

支持普通表、系统表、分区表、临时表、列存表、外部表、堆表;支持表截断。

5

视图

支持

支持

6

索引

支持普通索引、唯一索引、聚集索引、分区索引、全文索引、位图索引、位图连接索引、函数索引;支持在线重建索引、不可见索引

五种索引方式:唯一、主键、多属性、部分索引、表达式索引、组合索引、Indexes and ORDER BY、组合多个索引 

六种索引类型:B-tree,Hash,Gist,GIN、SP-GIST、BRIN

7

存储过程/函数

支持

支持

8

触发器

支持

支持

9

支持

支持

10

序列

支持

支持

11

同义词

支持

支持

12

支持

不支持

13

SQL域

支持

支持

14

用户管理

支持

支持

15

事务管理

支持

支持

16

开发接口

OLEDB、ADO、ODBC、OCI、OCCI、JDBC、 Hibernate、PHP、PDO、DBExpress、Hibernate、libsqlora8、 NodeJS、OO4O、QOCI、Python、以及.Net DataProvider等。

OLEDB、ADO、ODBC、JDBC、

Hibernate、.Net DataProvider、DBD::Pglibpqxxnode-postgresNpgsqlPgtclpgtclngpqpsycopgECPGlibpq 

#安全性能对比

编号

项目

DM8

PostgreSQL14

1

标记与强制访问控制

DM 作为安全数据库,提供了包括用户标识与鉴别、自主与强制访问控制、通信与存储加密、审计等丰富的安全功能,且各安全功能都可进行配置,满足各类型用户在安全管理方面不同层次的需求。

强制访问控制可以控制系统中信息流动的轨迹,能有效地抵抗特洛伊木马的攻击,这在一些对安全要求很高的数据库应用中是非常必要的。

DM 利用策略和标记来实现 DM 数据库的强制访问控制。执行强制访问控制的用户必须具有 LABEL_DATABASE 数据库权限,在新初始化的数据库中,只有 SYSSSO 具有这个权限。

提供权限管理;支持自主访问控制和基于标签的强制访问控制,实现对表中记录的权限控制。

PostgreSQL先通过用户标识和认证来验证访问数据库的用户身份,判断是否为合法用户及是否具有权限访问数据库资源。然后通过基于角色的访问控制(Role Based Access Control, RBAC),并使用存取控制列表(ACL)方法控制访问请求和包含信息。

2

数据加密

为了防止用户直接通过数据文件获取用户信息,DM提供了全面的数据加密的功能,包括:

  1. 透明加密
  2. 半透明加密
  3. 非透明加密

存储加密在保证数据文件安全性的同时,也会带来一定的性能影响,不同的加密算法对性能的影响各有不同,用户需要根据自己的需求来决定是否进行加密以及加密算法的选择。

支持通讯加密,支持对存储数据的透明存储加密和非透明存储加密.

PostgreSQL数据库自身提供了加密机制, 在数据库内核实现了存储的加密。这种加密方式能防止磁盘丢失和文件被复制导致的敏感数据泄漏。但是,对于控制了数据库系统的攻击者来说却是开放的, 并没有防护能力。而且其密钥管理通常不会对数据库用户开放,安全性得不到保证,也得不到国内相关评测机构的认可。

3

加密引擎

DM系统中内置了常用的DES,AES,RC4等类型的加密算法供用户使用,以此来保护数据的安全性。然而在有些特殊的环境下,这些加密算法可能不能满足用户的需求,用户可能希望使用自己特殊的加密算法,或强度更高的加密算法。DM的加密引擎功能则可以满足这样的需求。

用户只需要按照DM提供的加密引擎C语言编程接口,封装自己的加密算法,并编译成第三方加密动态库,即可以在DM的存储加密中使用自己的加密算法。

不支持

4

密钥自管理

DM实现了多级密钥管理机制,统一管理不同的用户的密钥,根据用户身份自动使用其密钥进行加解密,还提供简单方便的密钥更换操作接口

密钥管理由四部分构成:

密钥生成、密钥保存、密钥交换密钥轮转

#数据可靠性对比

编号

项目

DM8

PostgreSQL14

1

备份和恢复

支持逻辑备份、物理备份、联机备份、脱机备份、完全备份和增量备份,支持分级别备份、备份加密与压缩;在归档模式下,可将数据恢复到用户指定的任意时间。

不支持分级别的备份还原,不支持跨平台备份还原。

备份方式:

  1. SQL转储
  2. 文件系统级备份不实用
  3. 持续存档和时间点恢复(PITR)

还原方式:

  1. 恢复转储
  2. 使用连续存档备份进行恢复

2

双机系统支持

支持依赖操作系统HA 的双机热备,以及不依赖于第三方高可用软件的基于 REDO 日志的主备双机系统,支持故障检测与自动恢复,支持自动和手动的故障切换处理,备机可读,可分担主机负载

支持依赖和不依赖操作系统的双机热备功能。

对A、B实现双机热备,A作为数据库master主机,对外提供读写服务,B作为slave主机能实时同步A的数据。当A发生故障时,B从slave状态切换到master状态,以保证pg数据库能正常对外提供服务。

3

数据复制

支持同构数据库之间的同步和异步数据复制功能,可以单向,双向以及级联实现数据复制;

DM 异构实时同步工具 DMHS,支持异构数据库(Oracle、Mysql、 postgreSQL 等)与 DM 之间的实时同步复制

支持同构数据库之间的同步/异步数据复制,不支持异构数据库之间的数据复制。

#高性能对比

编号

项目

DM8

PostgreSQL14

1

视图查询合并

该功能可以将视图查询与视图定义进行总体分析并得出最优的查询计划。

不支持

2

数据分区

DM支持数据的垂直分区(很少,大部分是水平分区)和水平分区。通过将一个大表按水平或垂直划分成多个子表,并可在子表上建立索引。在大数量情况下,查询往往只涉及到其中一个或几个子表,可减少数据扫描代价,使效率得到大幅提升

支持水平分区,垂直分区。

包括范围分区和列表分区。

3

数据压缩

用户可以对整个表进行压缩,也可以选择对部分字段进行压缩。对于I/O密集型的系统来说,通过采取适当的数据压缩的策略,可以减少系统的I/O量,提升查询性能。

另一方面还能为用户节省磁盘空间。

PG是少有的不支持数据压缩的主流数据库。

但是可以通过第三方产品进行手动压缩,有zfs、ScaleFlus CSD2000、Postgre pro(非pg主分支功能,依赖商业定制版PG)。

注:pg可以对超过2kb的大字段使用toast方式压缩存储,适用场景有限。

4

函数索引

该功能以与列相关的某个表达式为准,计算该表达式的值并储存在索引中,当相关查询来临时可以利用该索引来免除繁琐的运算及全表扫描。

支持。基于某个表达式建立索引索引字段经过了某个函数的处理,达到在某种特殊的场景下走索引的目的

5

位图索引

在大数据量情况下,位图索引可极大提升基于低基数列上查询的

性能,且存储空间小,可为OLAP、商业智能、数据仓库和数据挖掘提供有效的支持

支持。扫描索引,把满足条件的行或者块在内存中建一个位图,扫描完索引后,再跟

进位图中记录的指针到表的数据文件读取相应的数据。在or、and、in子句和有多个条件都可以同时走不同的索引时,都可能走Bitmap Index Scan 。

6

大对象存取优化

DM在原有大对象处理的基础上,对大对象存储组织和生成的日志进行了优化,性能有大幅提升。

PG中存储二进制数据的类型包括 bytea(等同于 SQL 中的 blob),还有一个PG独有的大对象类型(largeobject)。用大对象类型时,二进制数据统一存储在一张系统表里,提高其他数据读写性能,并能和其他数据分开备份。

7

基于多版本的并发控制

DM提供了基于多版本的并发控制处理机制。多版本的最突出的特征是“查询不上锁”(封锁机制),即读操作不被阻塞,可以有效减少冲突,提高并发执行处理效率。

在数据库内部,数据的一致性使用多版本模式(多版本并发控制(Multiversion Concurrency Control),即MVCC)维护。这意味着每个SQL语句查询到的数据,是查询开始时间节点的快照(一个数据版本),而与查询期间数据状态无关。此机制确保语句不会查询到由并发事务对同一行数据进行修改而产生的不一致数据,从而为每个数据库会话提供了事务隔离特性。MVCC通过避免传统数据库系统中的锁定方法,最大程度上减小了在多用户并发场景下的锁争用,从而提高了性能。

注:在PG中,mvvc只适用于读已提交、可重复两个隔离级别。

8

单表记录支持数据量

DM单表记录可超过40亿条,可支持50TB级别数据量。

PG单表记录数无限制。但单表大小限制为32TB,单条记录最大为400GB,一个字段的最大尺寸为1GB,一个表里的最大列数为250--1600(与列类型有关)

9

分布式集群

支持基于完全对等不共享架构的并行分布式集群 DMMPP,实现数据分布式存储和并行计算,满足OLAP需求。

支持最多1024个EP节点,轻松组建超大型集群

Citus是Postgres的一个extension扩展,将Postgres转换成一个分布式数据库,在集群的多个节点上分发数据和查询,具有像分片、分布式SQL引擎、复制表和分布式表等特性。

更多技术交流,可登录达梦在线服务平台:达梦在线服务平台http://eco.dameng.com

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 首先,DB2和PostgreSQL都是常见的数据库管理系统,它们之间的最大区别在于DB2是由IBM提供的商业数据库,而PostgreSQL是一种开源的关系型数据库。此外,DB2支持多种操作系统,而PostgreSQL仅支持Linux和Unix操作系统。另外,DB2支持更多复杂的数据类型,而PostgreSQL仅支持标准SQL数据类型。 ### 回答2: DB2和PostgreSQL都是常见的关系型数据库管理系统,但在一些关键方面有所不同。 首先,DB2是IBM开发的商业数据库管理系统,而PostgreSQL是开源的,由全球开发者社区维护和发展。因此,DB2在一些专有功能和支持方面可能更加成熟和稳定,而PostgreSQL则更加灵活和可定制。 其次,DB2在企业环境中广泛应用,特别是在大型企业和金融机构中,具有可靠性高和性能强的特点。它提供了高度可用性和容错性的功能,支持分布式数据库和高度可扩展的架构。PostgreSQL则更多地被视为中小型企业和开发者社区的选择,它具有较低的入门门槛,并提供了丰富的开发工具和扩展库。 再次,DB2在商业支持和技术支持方面比PostgreSQL更全面。由于DB2是IBM的产品,用户可以获得来自IBM公司的专业咨询和支持。PostgreSQL则依赖于社区支持和第三方提供的商业支持。 最后,DB2在许多企业环境中是开发应用程序、数据仓库和商业智能解决方案的首选,具有广泛的集成能力和强大的分析功能。而PostgreSQL则更加注重开发者友好性和可扩展性,在Web应用、地理空间数据处理等方面表现突出。 总结而言,DB2和PostgreSQL都是功能强大的数据库管理系统,都有自己的优势和适用领域。DB2适合大型企业和金融机构,而PostgreSQL则更适合中小型企业和开发者社区。选择哪个数据库系统取决于具体需求、预算以及对商业支持和技术支持的依赖程度。 ### 回答3: DB2和PostgreSQL是两种关系型数据库管理系统(RDBMS),它们在很多方面有所不同。 首先,在许可和成本方面,DB2是IBM的产品,属于商业数据库,需要付费购买许可证。而PostgreSQL是开源的免费数据库,用户可以自由地下载、使用和修改。 其次,在功能和特性方面,DB2在企业级应用方面具有更强大的功能。它支持高可用性、灾备方案和集群配置,并提供更高级的安全性和审计功能。此外,DB2还支持多种操作系统和编程语言,以及存储过程和触发器等高级功能。PostgreSQL虽然功能也十分丰富,但在某些方面可能稍逊一筹。 再者,性能方面,DB2通常被认为是更快的数据库系统之一。它具有优化的查询处理、高效的索引机制和并行处理能力,适用于大型企业级应用。但是,PostgreSQL在较小规模的应用和处理复杂查询时也能提供良好的性能。 此外,DB2作为商业数据库,其用户支持和技术支持更强大。用户可以获得来自IBM的全面技术支持、培训和文档资源。而PostgreSQL的用户支持主要依靠社区,用户需依靠相关论坛和开发者社群获得支持。 总体而言,DB2适用于大型企业级环境,需要更高级的功能和支持。而PostgreSQL则适用于小型或中型项目,对成本敏感且希望充分利用开源技术的用户。选择哪种数据库取决于具体的需求、预算和技术背景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值