暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss概述

suger 2023-02-01
1926

一、openGauss概述
openGauss是关系型数据库,采用客户端/服务器,单进程多线程架构;支持单机和一主多备部署方式,同时支持备机可读、双机高可用等特性。

openGauss有如下基本功能:

1、支持标准SQL
openGauss数据库支持标准的SQL(Structured Query Language,结构化查询语言)。SQL标准是一个国际性的标准,定期会进行更新和演进。SQL标准的定义分成核心特性以及可选特性,绝大部分的数据库都没有100%支撑SQL标准。openGauss数据库支持SQL92/SQL99/SQL2003等,同时支持SQL2011大部分的核心特性,另外还支持部分的可选特性。

2、支持标准开发接口
openGauss数据库提供业界标准的ODBC(Open Database Connectivity,开放式数据库连接)及JDBC(Java Database Connectivity,java数据库连接)接口,保证用户能将业务快速迁移至openGauss。目前支持标准的ODBC3.5及JDBC4.0接口,其中ODBC能够支持CentOS、openEuler、SUSE、Win32、Win64等平台,JDBC无平台差异。

3、混合存储引擎支持
openGauss数据库支持行存储引擎、列存储引擎和内存存储引擎等。行存分为“inplace update” 和 “append update”两种模式,前者通过单独的回滚段(undo log)来保留元组的前像以解决读写冲突,可以更自然的支持数据更新;后者将更新记录混杂在数据记录中,通过新旧版本的形式来支持数据更新,对于旧版本需要定期做vacuum操作来支持磁盘空间的回收。列存支持数据快速分析,更适合OLAP(Online Analytical Processing,联机分析处理)业务。内存引擎支持实时数据处理,对有极致性能要求的业务提供支撑。

4、事务支持
事务支持指的就是系统提供事务的能力,openGauss支持事务的原子性、一致性、隔离性和持久性。事务支持及数据一致性保证是绝大多数数据库的基本功能,只有支持了事务,才能满足事务化的应用需求。

A(Atomicity):原子性。整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。
C(Consistency):一致性。事务需要保证从一个执行性状态转移到另一个一致性状态,不能违反数据库的一致性约束。
I(Isolation):隔离性。隔离事务的执行状态,使它们好像是系统在给定时间内执行的唯一操作。例如有两个事务并发执行,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。
D(Durability):持久性。在事务提交以后,该事务对数据库所作的更改便持久的保存在数据库之中,不会因掉电,进程异常故障而丢失。
openGauss数据库支持事务的隔离级别有读已提交和可重复读,默认隔离级别是读已提交,保证不会读到脏数据。

事务分为隐式事务和显式事务,显式事务的相关基础接口如下:

Start transaction:事务开启
Commit:事务提交
Rollback:事务回滚
另有用户还可以通过“Set transaction”命令设置事务的隔离级别、读写模式或可推迟模式。

5、软硬结合
openGauss数据库支持软硬件的结合,包括多核的并发访问控制、基于SSD(Solid-State Drive,固态硬盘)的IO(输入/输出Input/Output,)优化、智能的Buffer Pool(缓冲池)数据管理。

6、智能的优化器
openGauss数据库提供了智能的代价模型、智能计划选择,可以显著提升数据库性能。openGauss的执行器包含了向量化执行和LLVM(Low Level Virtual Machine,底层虚拟机,一种构架编译器的框架系统)编译执行,可以显著提升数据库性能。

7、AI的支持
传统数据库生态依赖于DBA(Database Administrator,数据库管理员)进行数据的管理、维护、监控、优化。但是在大量的数据库实例中,DBA难以支持海量实例,而AI(Artificial Intelligence ,人工智能)则可以自动优化数据库,openGauss数据库的AI功能包括AI自调优、AI索引推荐、AI慢SQL诊断等。

8、安全的支持
openGauss数据库具有非常好的安全特性,包括透明加密(即在磁盘的存储文件是加密的)、全密态(数据传输、存储、计算都是加密的)、防篡改(用户不可篡改)、敏感数据智能发现等。

9、函数及存储过程支持
函数和存储过程是数据库中的一种重要对象,主要功能将用户特定功能的SQL语句集进行封装,并方便调用。存储过程是SQL、PL/SQL(Procedural Language SQL,过程语言SQL)的组合。存储过程可以使执行商业规则的代码从应用程序中移动到数据库。从而代码存储一次能够被多个程序使用。

允许客户模块化程序设计,对SQL语句集进行封装,调用方便。
存储过程会进行编译缓存,可以提升用户执行SQL语句集的速度。
系统管理员通过对执行某一存储过程的权限进行限制,能够实现对相应数据访问权限的限制,避免了非授权用户对数据的访问,保证了数据的安全。
为了处理SQL语句,存储过程分配一段内存区域来保存上下文。游标是指向上下文区域的句柄或指针。借助游标,存储过程可以控制上下文区域的变化。
支持6种异常信息级别方便客户对存储过程进行调试。支持存储过程调试,存储过程调试是一种调试手段,可以在存储过程开发中,一步一步跟踪存储过程执行的流程,根据变量的值,找到错误的原因或者程序的bug,提高问题定位效率。支持设置断点和单步调试。
openGauss支持SQL标准中的函数及存储过程,增强了存储过程的易用性。

10、PostgreSQL接口兼容
兼容PSQL客户端,兼容PostgreSQL标准接口。

11、支持SQL hint
支持SQL hint(hints是SQL语句的注释,可以指导优化器选择人为指定的执行计划。)影响执行计划生成、提升SQL查询性能。Plan Hint为用户提供了直接影响执行计划生成的手段,用户可以通过指定Join顺序\Join、Scan方法\指定结果行数\等多个手段来进行执行计划的调优,以提升查询的性能。

12、Copy接口支持容错机制
openGauss数据库提供用户封装好的函数来创建Copy错误表,并允许用户在使用“Copy From”指令时指定容错选项,使得“Copy From”语句在执行过程中部分解析、数据格式、字符集等相关的报错不会报错中断事务、而是被记录至错误表中,使得在“Copy From”的目标文件即使有少量数据错误也可以完成入库操作。用户随后可以在错误表中对相关的错误进行定位以及进一步排查。




原文链接:https://blog.csdn.net/GaussDB/article/details/116132257

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论