
openGauss核心技术
文章平均质量分 91
openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss内核源自PostgreSQL,深度融合华为在数据库领域多年的经验,结合企业级场景需求,持续构建竞争力特性。
Gauss松鼠会
深耕数据库10余年,致力于GaussDB、openGauss等数据库技术的学习、探索与传播。
展开
-
openGauss 6.0.0-RC1 版本正式发布!
openGauss 6.0.0-RC1版本正式上线!原创 2024-04-01 09:37:30 · 1745 阅读 · 18 评论 -
openGauss DBMind自治运维系统的安装和部署
DBMind作为openGauss数据库的一部分,为openGauss数据库提供了自动驾驶能力,是一款领先的开源数据库自治运维平台。通过DBMind, 您可以很容易地发现数据库的问题,同时可以实现秒级的数据库问题根因分析。原创 2023-04-28 10:22:53 · 1479 阅读 · 10 评论 -
深入浅出openGauss的执行器基础
执行器各个算子解耦合的基础。对于每个算子来说,只有三步:1、向自己的孩子拿一个 tuple。即调用孩子节点的 Next 函数;2、执行计算;3、向上层返回一个 tuple。即当前节点 Next 函数的返回结果。原创 2023-04-21 10:01:00 · 2313 阅读 · 17 评论 -
openGauss都做了哪些算子优化工作?
openGauss在代码里面实现了大量的算子级优化工作,为了更进一步便于用户理解,我们对这些工作进行了总结,并且对内部具体的一些算法进行详细介绍,其总结如下。原创 2023-04-14 16:31:08 · 1077 阅读 · 1 评论 -
openGauss数据库共享存储特性简介
openGauss数据库共享存储特性简介。原创 2023-02-17 11:14:53 · 3207 阅读 · 20 评论 -
openGauss的高效数据压缩算法
目前主流的数据库厂家(MySQL、Oracle、Postgresql、SQL Server等)都有自己特有的压缩方案,在此基础上openGauss将进一步探索压缩比更高的算法方案。原创 2022-11-18 14:25:08 · 1654 阅读 · 26 评论 -
openGauss数据库 智能优化器之基数估计
现代数据库优化器主要依赖于其内部的代价估计系统,而代价估计最重要的依据就是查询算子的基数,即数据通过算子内查询条件过滤之后剩余的结果行数。因此基数估计技术是影响优化器产生的执行计划性能最关键的技术。openGauss本次开源的智能基数估计特性采用了一种分布自适应的内核原生多列数据分布刻画方法,其首先利用数据列相关性进行数据分布感知,然后根据分布构建对应的概率图模型。原创 2022-10-25 12:19:36 · 1142 阅读 · 30 评论 -
openGauss 3.1.0 的新型选择率模型大解密
国产数据库openGauss 9.30日新出了3.1.0版本,有哪些新的特性呢?我们计划出个系列详细介绍一下,期望大家多多支持~选择率估算作为代价模型行数估算的基础,其准确性影响着优化器查询计划的选取,数据库优化器生成的不同查询计划之间可以达到数个数量级的区别。原创 2022-10-21 09:45:09 · 840 阅读 · 12 评论 -
了解下openGauss的密态支持函数/存储过程
上期我们介绍了密态查询和使用jdbc连接密态数据库的操作。本期来介绍密态支持函数/存储过程。openGauss 3.0.0版本只支持sql和PL/pgsql两种语言。由于密态支持存储过程中创建和执行函数/存储过程对用户是无感知的,因此使用时语法和非密态无区别。密态等值查询支持函数存储过程特性新增了系统表gs_encrypted_proc,用于存储参数返回的原始数据类型。下面来看下一些示例。创建并执行涉及加密列的函数/存储过程创建密钥,详细步骤请参考使用gsql操作密态数据库和使用JDBC操作密态数原创 2022-05-25 14:17:48 · 3678 阅读 · 6 评论 -
数据库密态等值查询概述及操作
目录1. 密态等值查询概述2. 使用gsql操作密态数据库操作步骤3.使用JDBC操作密态数据库连接密态数据库调用isValid方法刷新缓存示例执行密态等值查询相关的创建密钥语句执行密态等值查询相关的创建加密表的语句执行加密表的预编译SQL语句执行加密表的批处理操作1. 密态等值查询概述随着企业数据上云,数据的安全隐私保护面临越来越严重的挑战。密态数据库将解决数据整个生命周期中的隐私保护问题,涵盖网络传输、数据存储以及数据运行态;更进一步,密态数据库可以.原创 2022-05-23 14:22:42 · 3842 阅读 · 6 评论 -
码农必备SQL调优(下)
目录1. Plan Hint调优概述2. Join顺序的Hint3. Join方式的Hint4. 行数的Hint5. Scan方式的Hint6. 子链接块名的hint7. Hint的错误、冲突及告警8. 优化器GUC参数的Hint9. Custom Plan和Generic Plan选择的Hint10. 指定子查询不展开的Hint11. 指定不使用全局计划缓存的Hint12. 同层参数化路径的Hint1. Plan Hint调优概述Plan H原创 2022-05-18 10:57:40 · 3999 阅读 · 15 评论 -
内存优化表MOT管理
目录1.MOT持久性1.1 MOT日志记录:WAL重做日志1.2 MOT日志类型1.3 配置日志1.4 MOT检查点2.MOT恢复3.MOT复制和高可用4.MOT内存管理5.MOT VACUUM清理6.MOT统计7.MOT监控7.1 表和索引大小7.2 MOT全局内存详情7.3 MOT本地内存详情7.4 会话内存8.MOT错误消息8.1 写入日志文件的错误8.2 返回给用户的错误1.MOT持久性持久性是指长期的数据保护(原创 2022-04-29 09:37:06 · 4283 阅读 · 14 评论 -
三千字教你使用MOT
使用MOT非常简单,以下几个小节将会进行描述。openGauss允许应用程序使用MOT和基于标准磁盘的表。MOT适用于最活跃、高竞争和对吞吐量敏感的应用程序表,也可用于所有应用程序的表。以下命令介绍如何创建MOT,以及如何将现有的基于磁盘的表转换为MOT,以加速应用程序的数据库相关性能。MOT尤其有利于已证明是瓶颈的表。工作流程概述以下是与使用MOT相关的任务的简单概述:本小节还介绍了如何执行各种与MOT相关的附加任务,以及MOT SQL覆盖和限制。授予用户权限 创建/删除MO原创 2022-04-27 10:22:56 · 4381 阅读 · 14 评论 -
同学,你听说过MOT吗?
1. MOT简介openGauss引入了MOT存储引擎,它是一种事务性行存储,针对多核和大内存服务器进行了优化。MOT是openGauss数据库最先进的生产级特性(Beta版本),它为事务性工作负载提供更高的性能。MOT完全支持ACID特性,并包括严格的持久性和高可用性支持。企业可以在关键任务、性能敏感的在线事务处理(OLTP)中使用MOT,以实现高性能、高吞吐、可预测低延迟以及多核服务器的高利用率。MOT尤其适合在多路和多核处理器的现代服务器上运行,例如基于Arm/鲲鹏处理器的华为TaiShan服务器原创 2022-04-25 09:12:35 · 6224 阅读 · 14 评论 -
数据库资源负载管理(下篇)
设置控制组背景信息openGauss资源负载管理的核心是资源池,而配置资源池首先要在环境中实现控制组Cgroups的设置。更多Cgroups的原理介绍,请查看相关操作系统的产品手册。Class控制组为数据库业务运行所在的顶层控制组,集群部署时会自动生成默认子Class控制组“DefaultClass”。DefaultClass的Medium控制组会含有系统触发的作业在运行,该控制组不允许进行资源修改,且运行在该控制组上的作业不受资源管理的控制,所以推荐创建新的子Class及其Workload控制组来设原创 2022-04-22 10:21:44 · 3589 阅读 · 16 评论 -
数据库资源负载管理(上篇)
资源负载管理概述功能描述openGauss提供了资源负载管理手段,来均衡任务对系统资源的利用。相关概念资源管理openGauss对于系统资源的管理范围包含CPU资源、内存资源、IO资源和存储资源。通过对系统的资源进行合理的分配,避免发生资源的不合理占用导致系统运行效率下降或者引发系统运行问题。控制组控制组(Cgroups)是control groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如:CPU、内存、IO等)的机制。如果一个进程加入了某一个控制组,原创 2022-04-20 10:23:06 · 4469 阅读 · 9 评论 -
AI4DB:人工智能之慢SQL根因分析
AI4DB: 慢SQL根因分析概述慢SQL一直是数据运维中的痛点问题,如何有效诊断慢SQL根因是当前一大难题,工具结合openGauss自身特点融合了现网DBA慢SQL诊断经验,该工具可以支持慢SQL根因15+,能同时按照可能性大小输出多个根因并提供针对性的建议。环境部署数据库运行正常。指标采集系统运行正常。使用指导假设用户已经初始化配置文件目录confpath,则可以通过下述命令实现本特性的功能:仅启动慢SQL诊断功能(输出Top3根因),启动命令如下(更多用法参考对service子原创 2022-04-18 14:18:45 · 6935 阅读 · 7 评论 -
AI4DB:openGauss人工智能参数调优之X-Tuner
用户可以通过gs_dbmind的component子命令启动对应的AI子功能,下述章节展示不同AI功能的具体内容和使用详情。原创 2022-04-15 10:37:01 · 6263 阅读 · 10 评论 -
openGauss AI能力升级,打造全新的AI-Native数据库
数据库与AI结合起来会迸发出什么样的火花?不同的数据库厂商、开源社区、高校师生们的理解也都不尽相同。虽然在精确的概念上难以形成统一的标准,但是在总体的演进思路上却是一致的。对于openGauss来说,自从在社区开源第一个版本开始,openGauss便不断地在该领域演进并贡献代码,对于此次开源的openGauss 3.0.0 版本来说也不例外。原创 2022-04-11 11:17:55 · 6946 阅读 · 10 评论 -
openGauss并行解码浅谈
在信息技术飞速发展的今天,各种类型数据库层出不穷。由于支持数据在异构数据库间同步,逻辑复制的重要性与日俱增。当前openGauss逻辑复制串行解码平均性能为3~5MBps,在业务压力大的场景下难以满足实时同步的需求,导致日志堆积,从而影响生产集群业务。因此,我们设计了并行解码特性,令多个线程协同并行解码从而提高解码性能,在基础场景下解码性能可达到100MBps.原创 2022-04-12 14:17:33 · 5453 阅读 · 19 评论 -
openGauss 3.0.0版本正式发布,立即体验社区首个轻量版本
今日,openGauss 3.0.0版本正式上线!openGauss 3.0.0版本是openGauss社区继2.0.0之后发布的又一个Release版本,版本维护生命周期为3.5年。3.0.0版本在高性能、高可用、高安全、高智能、工具链等方面都有持续创新和突破。原创 2022-04-02 09:51:20 · 6351 阅读 · 25 评论 -
openGauss安全(下)
上篇内容从openGauss安全机制概览、openGauss安全认证、openGauss角色管理机制等方面介绍了openGauss安全(上)中的内容,本篇将围绕openGauss审计与追踪、openGauss数据安全技术、openGauss云安全技术、openGauss智能安全机制对openGauss安全的其他方面进行介绍。四、openGauss审计与追踪openGauss在部署完成后,实际上会有多个用户参与数据管理。除了管理员用户外,更多的是创建的普通用户直接进行数据管理。用户的多样性会导致数据库存在原创 2021-04-25 14:35:32 · 3830 阅读 · 3 评论 -
openGauss安全(上)
随着数字化技术的飞速发展,数字、连接、信号、人工智能充斥着人们工作、生活的各个领域。这些数字化信息被快速转换成数据并存放在各式各样的数据库系统中,而且通过进一步的数据管理与分析产生商业价值。这些有价值的数据或被存放在企业相对封闭的私有网络内,或被存放在相对开放的公有云环境下,又或是集成在智能系统中。人们在享受由数字化发展所带来的便捷生活的同时,也可能面临着无处不在的隐私泄露、信息篡改、数据丢失等安全风险。数据库安全作为数据库系统的护城河,通过访问登录认证、用户权限管理、审计与监视、数据隐私保护以及安全信道原创 2021-04-25 11:04:31 · 3107 阅读 · 3 评论 -
openGauss事务机制(下)
openGauss并发控制在openGauss事务机制(上)的介绍中,已经了解当数据库中存在并发执行事务的情况下,要保证ACID特性,需要一些特殊的机制来支持。并发控制就是这样的一种控制机制,能够保证并发事务同时访问同一个对象或数据下的 ACID特性。openGauss并发控制是十分高效的,其核心是 MVCC和快照机制。如openGauss事务机制(上)所述,通过使用 MVCC和快照,可以有效解决读写冲突,使得并发的读事务和写事务工作在同一条元组的不同版 本上,彼 此不会相互阻塞。对于并发的两个写事务,原创 2021-04-23 16:42:29 · 2913 阅读 · 4 评论 -
openGauss事务机制(上)
事务是为用户提供的最核心、最具吸引力的数据库功能之一。简单地说,事务是用户定义的一系列数据库操作(如查询、插入、修改或删除等)的集合,从数据库内部保证了该操作集合(作为一个整体)的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),这些特性统称事务的 ACID特性。其中:A:原子性是指事务中的所有操作要么全部执行成功,要么全部执行失败。一个事务执行以后,数据库只可能处于上述两种状态之一,即使数据库在这些操作执行过程中发生故障,也原创 2021-04-23 16:23:48 · 3851 阅读 · 4 评论 -
openGauss存储技术(二)——列存储引擎和内存引擎
上一篇内容我们介绍了openGauss存储技术(一)——行存储引擎,本文重点介绍openGauss列存储引擎和内存引擎。openGauss列存储引擎传统行存储数据压缩率低,必须按行读取,即使读取一列也必须读取整行。在分析性的作业以及业务负载的情况下,数据库往往会遇到针对大量表的复杂查询,而这种复杂查询中往往仅涉及一个较宽(表列数较多)的表中个别列。此类场景下,行存储以行作为操作单位,会引入与业务目标数据无关的数据列的读取与缓存,造成了大量IO 的浪费,性能较差。因此openGauss提供了列存储引擎的相原创 2021-04-22 20:48:33 · 5835 阅读 · 3 评论 -
openGauss存储技术(一)——行存储引擎
OLTP(联机事务处理)系统以高并发读写为主,数据实时性要求非常高,数据以行的形式组织,最适合面向外存设计的行存储引擎。随着内存逐渐变大,服务器上万亿字节(TB)大小的内存已经很常见,内存引擎面向大内存而设计,提高系统的吞吐量和降低业务时延。OLAP(联机分析处理)系统主要面向大数据量分析场景,对数据存储效率、复杂计算效率的要求非常高。列存储引擎可以提供很高的压缩比,同时面向列的计算,CPU 指令高速缓存和数据高速缓存的命中率比较高,计算性能比较好,按需读取列数据,大大减少不必要的磁盘读取,非常适合数据分析原创 2021-04-22 15:26:44 · 5904 阅读 · 4 评论 -
openGauss执行器技术
执行器在数据库的整个体系结构中起承上(优化器)启下(存储)的作用。本文首先介绍执行器的基本框架,然后引申介绍执行引擎中的一些关键技术。通过本文的阅读,读者能对执行器有个基本的认识。一、 openGauss执行器概述从客户端发出一条SQL语句到结果返回给客户端的整体执行流程如图1所示,从中可以看到执行器所处的位置。图1 客户端发出SQL语句的执行流程示意图如果把数据库看成一个组织,优化器位于组织的最上层,是这个组织的首脑,是发号施令下达指令的机构,执行器位于组织的中间,听从优化器的指挥,严格执行优化原创 2021-04-21 14:44:17 · 3232 阅读 · 3 评论 -
openGauss SQL引擎(下)——查询优化
上一篇openGauss SQL引擎 (上)中我们介绍了SQL引擎概览、SQL解析以及查询优化器的优势和优化技术的分类,本文将详细介绍查询优化的相关内容。(一)查询重写查询重写利用已有语句特征和关系代数运算来生成更高效的等价语句,在数据库优化器中扮演关键角色,尤其在复杂查询中,能够在性能上带来数量级的提升,可谓是“立竿见影”的“黑科技”。下面介绍查询重写的基本概念、常见的查询重写技术、查询重写面临的挑战等内容。1.查询重写的概念SQL是丰富多样的,应用非常灵活,不同的开发人员依据不同的经验,编写的S原创 2021-04-19 15:37:55 · 3369 阅读 · 3 评论 -
openGauss SQL引擎 (上)
数据库的SQL引擎是数据库重要的子系统之一,它对上负责承接应用程序发送的SQL语句,对下负责指挥执行器运行执行计划。其中优化器作为SQL引擎中最重要、最复杂的模块,被称为数据库的“大脑”,优化器产生的执行计划的优劣直接决定数据库的性能。本文从SQL语句开始介绍,对SQL引擎的各个模块进行全面的说明。一、 SQL引擎概览SQL引擎是数据库系统的重要组成部分,主要职责是将应用程序输入的SQL语句在当前负载场景下生成高效的执行计划,在SQL语句的高效执行上扮演重要角色。SQL语句在SQL引擎中的执行过程如原创 2021-04-19 10:16:10 · 3484 阅读 · 3 评论 -
面向鲲鹏和昇腾的创新架构
面向鲲鹏的创新架构华为的鲲鹏920处理器以及后续的处理器系列,与传统的英特尔 x86处理器相比,存在以下3方面的不同:具有更多计算核心,使得可以并行运行的算力大幅增加。具有更加显著的 NUMA 特性,将导致并行处理线程间同步代价的提高。处理器内部、跨处理器之间的核间通信能力(鲲鹏处理器提供 POE,Packet OrderEnforcement能力,实现核间通信消息包的保序能力),可以提升先前通过内存通信机制的通信效率。为了提升数据库系统对处理器的有效利用率,保证数据库系统提供的面向客户的 S原创 2021-04-19 09:37:38 · 2440 阅读 · 3 评论 -
GaussDB架构(下)
GaussDB云数据库架构云数据库系统的主要目的是提供数据库系统服务的基础设施,以实现对计算机资源的共享。本文所讲述的GaussDB云数据库架构设计的内容,目前处于研发阶段,对应产品尚未向客户发布。1.设计思想与目标客户从数据存放的位置来看,云数据库系统可以分成三大类:公有云数据库系统服务: 该类数据库系统服务主要面向中小型企业的数据库需求。针对中小型企业提供公有云数据库系统服务,可以大幅降低这类公司的运营成本,比如构建数据中心或者机房、构建服务器、运维服务器、运维数据库系统的成本等,同时也使得这原创 2021-04-16 09:32:02 · 3877 阅读 · 3 评论 -
GaussDB架构(中)
在GaussDB架构(上)中我们介绍了GaussDB的发展历史和架构概览,本篇主要介绍GaussDB OLTP数据库架构和GaussDB OLAP数据库架构。GaussDB OLTP数据库架构。OLTP是传统的关系数据库的主要应用,包括基本的增加、删除、修改、查询事务处理,例如银行交易。1. 设计思想与目标客户OLTP业务场景主要分为两大类:一类是金融银行业务场景,一类是互联网业务场景。但应用OLTP业务要满足5个重要的需求:故障业务中断时间,RTO(Recovery Time Objectiv原创 2021-04-15 21:05:48 · 3113 阅读 · 3 评论 -
GaussDB架构(上)
GaussDB是华为公司数据库产品品牌名。华为公司从开始自研数据库至今已经有近20年历史,其中经历了早期发展、GaussDB的诞生和发展、数据库产业化三个阶段。本文简明介绍华为公司自研数据库的历程,并给出一些GaussDB的里程碑时间点。GaussDB的发展历史是中国数据库发展历程的典型案例。GaussDB以云服务形式提供商业版本,并已在2020年中期推出开源数据库产品openGauss(社区网址为https://opengauss.org )。一、GaussDB发展历史本节首先概要介绍华为自研数据库的原创 2021-04-15 20:47:56 · 3703 阅读 · 2 评论 -
数据库未来发展趋势(下)
新应用驱动的数据库(5G、车、终端云)从数据库诞生开始,新的应用领域就不断为数据库带来新诉求,例如巨大的数据量、更短的数据处理时间、更高的可靠性、新的数据类型,而数据库也在满足这些新的诉求的同时得到不断的发展与更新。一、 及其相关应用对数据库系统带来的挑战与机遇从历史上看,通信技术对数据库发展起到了至关重要的作用:1980—1990年,TCP/IP网络协议出现,大中型企业内部开始规模部署局域网,甚至通过卫星技术将地域上分散的局域网互联互通,这推动了企业IT系统从主机时代走向客户端/服务端(Clie原创 2021-04-14 09:54:47 · 2555 阅读 · 4 评论 -
数据库未来发展趋势(上)
数据库是IT技术栈中承上启下的关键一层,具有如下特性:向上承托应用开发与运行,是应用生态关键组成之一。向下对接硬件和OS,对数据处理应用屏蔽底层硬件复杂性和兼容性。数据库系统是IT技术栈中的独立“小王国”,被誉为“软件行业皇冠上的明珠”。它内含了几乎所有的基础软件关键技术,是软件集大成者: OS(进线程调度和内存分配管理)、编程语言(SQL)、编译器(SQL编译和编译执行)、大规模并行计算(分布式SQL执行)、优化技术(优化器)等。数据库是数学理论和软件工程的结晶,其中蕴含了两个NP-Hard的世原创 2021-04-14 09:47:23 · 2832 阅读 · 4 评论 -
数据库发展史(下)
本篇文章为大家讲解AI原生数据库和其他类型数据库的发展历程。AI原生数据库近年来,随着AI(人工智能)技术的成熟和发展,AI与数据库的结合越来越紧密。为了提高数据库系统的智能化程度,使数据库系统能够更加智能地运行、维护、管理,不断有研究者采用人工智能方法来解决数据库管理、优化等问题。2019年初,谷歌联合麻省理工学院、布朗大学的研究人员共同推出了新型数据库系统SageDB,并撰写了一篇论文详述SageDB的设计原理和性能表现。论文中提出学习模型可以渗透到数据库系统的各个方面,提供了一种构建数据库系统的原创 2021-04-12 14:31:52 · 2691 阅读 · 21 评论 -
数据库发展史(中)
在《数据库发展史(上)》中,为大家介绍了网状数据库和层次数据库、关系数据库、分布式数据库、云数据库的发展史。本篇文章为大家介绍NoSQL数据库和NewSQL数据库的发展历程。NoSQL数据库尽管关系数据库系统技术已经相对成熟,能很好地处理表格类型的数据,但对业界出现的越来越多复杂类型的数据(如文本、图像、视频等)无能为力。尤其是步入互联网Web 2.0和移动互联网时代,许多互联网应用有着高并发读写、海量数据处理、数据结构不统一等特点,传统的关系数据库并不能很好地支持这些场景。另一方面,非关系数据库有着高原创 2021-04-12 14:24:42 · 2036 阅读 · 16 评论 -
数据库发展史(上)
数据库技术是信息技术领域的核心技术之一,几乎所有的信息系统都需要使用数据库系统来组织、存储、操纵和管理业务数据。数据库领域也是现代计算机学科的重要分支和研究方向。目前,在数据库领域已经产生了四位图灵奖得主,他们在数据库理论和实践领域均有突出贡献。在数据库诞生之前,数据存储和数据管理已经存在了相当长的时间。当时数据管理主要是通过表格、卡片等方式进行,效率低下,需要大量人员参与,极易出错。20世纪50年代,随着计算机的诞生和成熟,计算机开始运用于数据管理,与此同时,数据管理技术也迅速发展。传统的文件系统难以原创 2021-04-12 11:12:14 · 4811 阅读 · 17 评论