opengauss 面向应用开发的基本功能

2023年 10月 26日 45.2k 0

  • 支持标准SQL

    openGauss数据库支持标准的SQL。SQL标准是一个国际性的标准,定期会进行更新。SQL标准的定义分成核心特性以及可选特性,绝大部分的数据库都没有100%支撑SQL标准。遗憾的是,SQL特性的构筑成为了数据库厂商吸引用户和提高应用迁移成本的手段,新的SQL特性在厂商之间差异越来越大,目前还没有机构来进行权威的SQL标准度的测试。

    openGauss数据库支持SQL:2011大部分的核心特性,同时还支持部分的可选特性,具体的特性列表可以参考《SQL参考》中“SQL语言结构和语法>SQL语法”章节。

    标准SQL的引入为所有的数据库厂商提供统一的SQL界面,减少使用者的学习成本和应用openGauss程序的迁移代价。

  • 支持标准开发接口

    提供业界标准的ODBC及JDBC接口,保证用户业务快速迁移至openGauss。

    目前支持标准的ODBC 3.5及JDBC 4.0接口,其中ODBC支持SUSE、Win32、Win64平台,JDBC无平台差异。

  • 事务支持

    事务支持指的就是系统提供事务的能力,支持全局事务的ACID,保证事务的原子性、一致性、隔离性和持久性。

    事务支持及数据一致性保证是绝大多数数据库的基本功能,只有支持了事务,才能满足事务化的应用需求。

    • A:Atomicity 原子性

      原子性是指事务是一个不可分割的工作单位,单个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。

    • C:Consistency 一致性

      事务前后数据的完整性必须保持一致,不管系统处于任何给定的时间或任意并发事务的数量。

    • I:Isolation 隔离性

      多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。

    • D:Durability 持久性

      一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。

    支持事务的默认隔离级别是读已提交,保证不会读到脏数据。

    事务分为单语句事务和事务块,相关基础接口:

    • Start transaction:事务开启
    • Commit:事务提交
    • Rollback:事务回滚

    另有Set transaction可设置隔离级别、读写模式或可推迟模式。详细语法参见《SQL参考》。

  • 函数及存储过程支持

    函数是数据库中的一种重要对象,主要功能是将用户特定功能的SQL语句集进行封装,并方便调用。

    存储过程是SQL、PL/SQL的组合。存储过程可以使执行商业规则的代码从应用程序中移动到数据库。从而,代码存储一次能够被多个程序使用。

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

    openGauss支持SQL标准中的函数及存储过程,增强了存储过程的易用性。存储过程具体的使用方式可以参考《SQL参考》。

  • PG接口兼容

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

  • 支持SQL hint

    支持SQL hint影响执行计划生成、提升SQL查询性能。

    Plan hint为用户提供了直接影响执行计划生成的手段,用户可以通过指定join顺序,join、stream、scan方法和指定结果行数等多个手段来进行执行计划的调优,以提升查询的性能。

  • Copy接口支持容错机制

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

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论