摘要:
MOT本地内存和全局内存 SILO管理本地内存和全局内存,如所示。 全局内存是所有核共享的长期内存,主要用于存储所有的表数据和索引。 本地内存是短期内存,主要由会话使用,用于处理事务及将数据更改存储到事务内存中,直到提交阶段。 当事务需要更改时,SILO将该事务的所有数据从全局内存复制到本地内存。使 阅读全文
posted @ 2024-04-28 10:19
奔跑的数据库
阅读(16)
评论(0)
推荐(0)
摘要:
MOT并发控制机制 通过大量研究,我们找到了最佳的并发控制机制,结论为:基于SILO[的OCC算法是MOT中最符合ACID特性的OCC算法。SILO为满足MOT的挑战性需求提供了最好的基础。 说明: MOT完全符合原子性、一致性、隔离性、持久性(ACID)特性,如MOT简介所述。 下面介绍MOT的并 阅读全文
posted @ 2024-04-28 10:18
奔跑的数据库
阅读(22)
评论(0)
推荐(0)
摘要:
MOT部署 以下各小节介绍了各种必需和可选的设置,以达到最佳部署效果。 MOT服务器优化:x86 MOT服务器优化:基于Arm的华为TaiShan2P/4P服务器 MOT配置 阅读全文
posted @ 2024-04-28 10:12
奔跑的数据库
阅读(13)
评论(0)
推荐(0)
摘要:
MOT测试总结 MOT比磁盘表性能提升2.5至4.1倍,在Arm/鲲鹏256核服务器上达到480万tpmC。测试结果清楚表明MOT在扩展和利用所有硬件资源方面的卓越能力。随着CPU槽位和服务器核数增加,性能会随之跃升。 MOT在Arm/鲲鹏架构下最高可达3万tpmC/核,在x86架构下最高可达4万t 阅读全文
posted @ 2024-04-28 10:11
奔跑的数据库
阅读(18)
评论(0)
推荐(0)
摘要:
MOT查询原生编译(JIT) MOT使您可以在执行之前以原生格式(使用PREPARE语句)准备并分析预编译的完整查询。 这种本机格式以后可以更有效地执行(使用EXECUTE命令)。这种类型的执行效率要高得多,因为在执行期间,本机格式绕过了多个数据库处理层。这种分工避免了重复的解析分析操作。Lite 阅读全文
posted @ 2024-04-28 10:11
奔跑的数据库
阅读(17)
评论(0)
推荐(0)
摘要:
MOT持久性 持久性是指长期的数据保护(也称为磁盘持久化)。持久性意味着存储的数据不会遭受任何形式的退化或损坏,因此数据不会丢失或损坏。持久性可确保在有计划停机(例如维护)或计划外崩溃(例如电源故障)后数据和MOT引擎恢复到一致状态。 内存存储是易失的,需要电力来维护所存储的信息。另一方面,磁盘存储 阅读全文
posted @ 2024-04-28 10:10
奔跑的数据库
阅读(23)
评论(0)
推荐(0)
摘要:
MOT持久性概念 持久性是指长期的数据保护(也称为磁盘持久性)。持久性意味着存储的数据不会遭受任何形式的退化或破坏,因此数据不会丢失或损坏。持久性可确保在有计划停机(例如维护)或计划外崩溃(例如电源故障)后数据和MOT引擎恢复到一致状态。 内存存储是易失的,需要电源来维护所存储的信息。另一方面,磁盘 阅读全文
posted @ 2024-04-28 10:10
奔跑的数据库
阅读(18)
评论(0)
推荐(0)
摘要:
MOT错误消息 错误可能由多种场景引起。所有错误都记录在数据库服务器日志文件中。此外,与用户相关的错误作为对查询、事务或存储过程执行或数据库管理操作的响应的一部分返回给用户。 服务器日志中报告的错误包括函数、实体、上下文、错误消息、错误描述和严重性。 向用户报告的错误被翻译成标准PostgreSQL 阅读全文
posted @ 2024-04-28 10:10
奔跑的数据库
阅读(41)
评论(0)
推荐(0)
摘要:
MOT的概念 本章介绍openGauss MOT的设计和工作原理,阐明其高级特性、功能及使用方法,旨在让读者了解MOT操作上的技术细节、重要特性细节和创新点。本章内容有助于决策MOT是否适合于特定的应用需求,以及进行最有效的使用和管理。 MOT纵向扩容架构 MOT并发控制机制 扩展FDW与其他ope 阅读全文
posted @ 2024-04-28 10:09
奔跑的数据库
阅读(10)
评论(0)
推荐(0)
摘要:
MOT低延迟 以下是在Arm/鲲鹏两路服务器(128核)上进行测试的结果。单位为毫秒(ms)。 图 1 低延迟(90th%)性能基准 MOT的平均事务速度为2.5倍,MOT延迟为10.5ms,而基于磁盘的表延迟为23至25ms。 说明: 计算平均数时,已考虑TPC-C的5个事务分布占比。有关更多信息 阅读全文
posted @ 2024-04-28 10:09
奔跑的数据库
阅读(17)
评论(0)
推荐(0)
摘要:
MOT服务器优化:x86 通常情况下,数据库由以下组件绑定: CPU:更快的CPU可以加速任何CPU绑定的数据库。 磁盘:高速SSD/NVME可加速任何I/O绑定数据库。 网络:更快的网络可以加速任何SQL*Net绑定数据库。 除以上内容外,以下通用服务器设置默认使用,可能会明显影响数据库的性能。 阅读全文
posted @ 2024-04-28 10:09
奔跑的数据库
阅读(23)
评论(0)
推荐(0)
摘要:
MOT服务器优化:基于Arm的华为TaiShan2P/4P服务器 以下是基于Arm/鲲鹏架构的华为TaiShan 2280 v2服务器(2路128核[对比:磁盘与MOT])和TaiShan 2480 v2服务器(4路256核[对比:磁盘与MOT])上运行MOT时的建议配置。 除非另有说明,以下设置适 阅读全文
posted @ 2024-04-28 10:08
奔跑的数据库
阅读(23)
评论(0)
推荐(0)
摘要:
MOT复制和高可用 由于MOT集成到openGauss中,并且使用或支持其复制和高可用,因此,MOT原厂功能即支持同步复制和异步复制。 openGauss gs_ctl工具用于可用性控制和openGauss实例操作。这包括gs_ctl切换、gs_ctl故障切换、gs_ctl构建等等。 有关更多信息, 阅读全文
posted @ 2024-04-28 10:08
奔跑的数据库
阅读(15)
评论(0)
推荐(0)
摘要:
MOT高吞吐量 MOT高吞吐量测试结果如下。 Arm/鲲鹏2路128核 性能 下图是华为Arm/鲲鹏2路128核服务器TPC-C基准测试的结果。 一共进行了四类测试: MOT和openGauss基于磁盘的表各进行了2次测试。 其中两项测试是在单节点(无高可用性)上执行,这意味着没有向备节点执行复制。 阅读全文
posted @ 2024-04-28 10:07
奔跑的数据库
阅读(42)
评论(0)
推荐(0)
摘要:
MOT隔离级别 即使MOT完全兼容ACID,openGauss 1.0并非支持所有的隔离级别。下表介绍了各隔离级别,以及MOT支持和不支持的内容。 表 1 隔离级别 隔离级别 说明 READ UNCOMMITTED MOT不支持 READ COMMITTED MOT支持 READ COMMITTED 阅读全文
posted @ 2024-04-28 10:07
奔跑的数据库
阅读(31)
评论(0)
推荐(0)
摘要:
匿名块 匿名块(Anonymous Block)是存储过程的字块之一,没有名称。一般用于不频繁执行的脚本或不重复进行的活动。 语法 匿名块的语法参见图1。 图 1 anonymous_block::= 对以上语法图的解释如下: 匿名块程序实施部分,以BEGIN语句开始,以END语句停顿,以一个分号结 阅读全文
posted @ 2024-04-28 10:00
奔跑的数据库
阅读(116)
评论(0)
推荐(0)
摘要:
权限 数据库对象创建后,进行对象创建的用户就是该对象的所有者。数据库安装后的默认情况下,未开启三权分立,数据库系统管理员具有与对象所有者相同的权限。也就是说对象创建后,默认只有对象所有者或者系统管理员可以查询、修改和销毁对象,以及通过GRANT将对象的权限授予其他用户。 为使其他用户能够使用对象,必 阅读全文
posted @ 2024-04-28 09:59
奔跑的数据库
阅读(195)
评论(0)
推荐(0)
摘要:
批处理模式 openGauss支持从文本文件执行SQL语句。openGauss提供了gsql工具实现SQL语句的批量处理。 以下场景建议使用批处理: 如果您重复运行查询(例如,每天或每周),将其设为脚本可以让您避免每次进行重复输入。 您可以通过复制和编辑脚本文件从现有的相似查询生成新查询。 对于多行 阅读全文
posted @ 2024-04-28 09:59
奔跑的数据库
阅读(78)
评论(0)
推荐(0)
摘要:
时间/日期函数和操作符 时间日期操作符 警告: 用户在使用时间和日期操作符时,对应的操作数请使用明确的类型前缀修饰,以确保数据库在解析操作数的时候能够与用户预期一致,不会产生用户非预期的结果。 比如下面示例没有明确数据类型就会出现异常错误。 SELECT date '2001-10-01' - '7 阅读全文
posted @ 2024-04-28 09:59
奔跑的数据库
阅读(417)
评论(0)
推荐(0)
摘要:
事件触发器 触发器会在指定的ddl事件发生时自动执行函数。目前事件触发器仅在PG兼容模式下可用。 语法格式 创建事件触发器。 CREATE EVENT TRIGGER name ON event [ WHEN filter_variable IN (filter_value [, ... ]) [ 阅读全文
posted @ 2024-04-28 09:59
奔跑的数据库
阅读(59)
评论(0)
推荐(0)
摘要:
事务 事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。openGauss数据库支持的事务控制命令有启动、设置、提交、回滚事务。openGauss数据库支持的事务隔离级别有读已提交和可重复读。 READ COMMITTED:读已提交隔离级别,事务只能读到已提交 阅读全文
posted @ 2024-04-28 09:58
奔跑的数据库
阅读(47)
评论(0)
推荐(0)
摘要:
视图 视图与基本表不同,是一个虚拟的表。数据库中仅存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。若基本表中的数据发生变化,从视图中查询出的数据也随之改变。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中用户感兴趣的数据及变化。 语法格式 创建视图 CREATE [ 阅读全文
posted @ 2024-04-28 09:58
奔跑的数据库
阅读(34)
评论(0)
推荐(0)
摘要:
数据类型 数值类型 表1列出了所有的可用类型。 表 1 整数类型 名称 描述 存储空间 范围 TINYINT 微整数,别名为INT1。 1字节 0 ~ 255 SMALLINT 小范围整数,别名为INT2。 2字节 -32,768 ~ +32,767 INTEGER 常用的整数,别名为INT4。 4 阅读全文
posted @ 2024-04-28 09:58
奔跑的数据库
阅读(484)
评论(0)
推荐(0)
摘要:
索引 索引是一个指向表中数据的指针。一个数据库中的索引与一本书的索引目录是非常相似的。 索引可以用来提高数据库查询性能,但是不恰当的使用将导致数据库性能下降。建议仅在匹配如下某条原则时创建索引: 经常执行查询的字段。 在连接条件上创建索引,对于存在多字段连接的查询,建议在这些字段上建立组合索引。例如 阅读全文
posted @ 2024-04-28 09:57
奔跑的数据库
阅读(125)
评论(0)
推荐(0)
摘要:
锁 如果需要保持数据库数据的一致性,可以使用LOCK TABLE来阻止其他用户修改表。 例如,一个应用需要保证表中的数据在事务的运行过程中不被修改。为实现这个目的,则可以对表进行锁定,这样将防止数据不被并发修改。 LOCK TABLE只在一个事务块的内部有用,在事务结束时就会被释放。 语法格式 LO 阅读全文
posted @ 2024-04-28 09:57
奔跑的数据库
阅读(73)
评论(0)
推荐(0)
摘要:
物化视图 物化视图是相对普通视图而言的。普通视图是虚拟表,而物化视图实际上就是存储SQL执行语句的结果,可以直接使用数据而不用重复执行查询语句,从而提升性能。 按照刷新方式物化视图分为两种: 全量物化视图:仅支持对已创建的物化视图进行全量更新,而不支持进行增量更新。创建全量物化视图语法和CREATE 阅读全文
posted @ 2024-04-28 09:57
奔跑的数据库
阅读(57)
评论(0)
推荐(0)
摘要:
游标 为了处理SQL语句,存储过程进程分配一段内存区域来保存上下文联系。游标是指向上下文区域的句柄或指针。借助游标,存储过程可以控制上下文区域的变化。 语法格式 定义游标 CURSOR cursor_name [ BINARY ] [ NO SCROLL ] [ { WITH | WITHOUT } 阅读全文
posted @ 2024-04-28 09:57
奔跑的数据库
阅读(96)
评论(0)
推荐(0)
摘要:
语法 默认情况下,数据库安装成功,登录后,可以使用\help语句查看所有openGauss的SQL语法。 openGauss=# \help Available help: ABORT ALTER TABLE CREATE DATABASE CREATE TEXT SEARCH CONFIGURAT 阅读全文
posted @ 2024-04-28 09:56
奔跑的数据库
阅读(52)
评论(0)
推荐(0)
摘要:
约束 约束子句用于声明约束,新行或者更新的行必须满足这些约束才能成功插入或更新。如果存在违反约束的数据行为,行为会被约束终止。 约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。 约束可以是列级或表级。列级约束仅适用于列,表级 阅读全文
posted @ 2024-04-28 09:56
奔跑的数据库
阅读(127)
评论(0)
推荐(0)
摘要:
运算符 openGauss中运算符是一个保留关键字或字符,一般用在WHERE语句中,作为过滤条件。常见运算符如下。 算术运算符 + 描述:加 示例: openGauss=# SELECT 2+3 AS RESULT; result 5 (1 row) - 描述:减 示例: openGauss=# S 阅读全文
posted @ 2024-04-28 09:55
奔跑的数据库
阅读(86)
评论(0)
推荐(0)
摘要:
子查询 子查询或称为内部查询,嵌套查询,指的是在数据库查询的WHERE子句中嵌入查询语句,相当于临时表。一个SELECT语句的查询结果能够作为另一个语句的输入值。 子查询可以与SELECT,INSERT,UPDATE和DELETE语句一起使用。 以下是子查询必须遵守的几个规则: 子查询必须用括号括起 阅读全文
posted @ 2024-04-28 09:54
奔跑的数据库
阅读(40)
评论(0)
推荐(0)
摘要:
版本编译 openGauss轻量版的编译过程和生成安装包的过程已经写成了一个一键式的脚本build/script/cmake_package_mini.sh,可以方便的通过脚本进行编译操作。 本章节主要介绍openGauss轻量版本编译和打包流程。 编译前准备 轻量版安装包编译 阅读全文
posted @ 2024-04-28 09:54
奔跑的数据库
阅读(35)
评论(0)
推荐(0)
摘要:
搭建编译环境 硬件要求 编译openGauss的硬件要求: 机器数量:1台 机器硬件规格: CPU: 4U Memory: 8G Free Disk:100G (Linux 64位) 软件要求 操作系统要求 openGauss支持的操作系统: CentOS 7.6 (x86 架构) openEule 阅读全文
posted @ 2024-04-28 09:53
奔跑的数据库
阅读(65)
评论(0)
推荐(0)
摘要:
轻量版安装包编译 使用build/script/cmake_package_mini.sh脚本构建openGauss轻量版安装包。 前提条件 已按照搭建编译环境的要求准备好相关软硬件,并且已参考代码下载下载了代码。 已完成开源软件编译构建,具体请参见开源软件编译构建。 了解cmake_package 阅读全文
posted @ 2024-04-28 09:53
奔跑的数据库
阅读(96)
评论(0)
推荐(0)
摘要:
如何解决“Configure error: C compiler cannot create executables”报错 问题 如何解决版本编译时出现的“Configure error: C compiler cannot create executables”报错。 回答 报错原因:binary 阅读全文
posted @ 2024-04-28 09:52
奔跑的数据库
阅读(396)
评论(0)
推荐(0)
摘要:
如何解决 "g++: fatal error: Killed signal terminated program cclplus" 报错 问题 如何解决编译过程中出现的 "g++: fatal error: Killed signal terminated program cclplus" 报错。 阅读全文
posted @ 2024-04-28 09:52
奔跑的数据库
阅读(446)
评论(0)
推荐(0)
摘要:
如何解决"out of memory allocating xxx bytes after a total of xxx bytes"报错 问题 如何解决编译过程中出现的“out of memory allocating xxx bytes after a total of xxx bytes”报错 阅读全文
posted @ 2024-04-28 09:52
奔跑的数据库
阅读(194)
评论(0)
推荐(0)
摘要:
dblink dblink是一个可以在一个openGauss数据库会话中连接到其它openGauss数据库的工具,同libpq支持的连接参数一致,可参考链接参数。openGauss默认不编译dblink,下面依次介绍如何编译和使用dblink。 编译dblink 当前dblink的源码放在contr 阅读全文
posted @ 2024-04-28 09:47
奔跑的数据库
阅读(111)
评论(0)
推荐(0)
摘要:
file_fdw file_fdw模块提供了外部数据封装器file_fdw,可以用来在服务器的文件系统中访问数据文件。数据文件必须是COPY FROM可读的格式,具体请参见COPY的介绍。使用file_fdw访问的数据文件是当前可读的,不支持对该数据文件的写入操作。 当前openGauss会默认编译 阅读全文
posted @ 2024-04-28 09:47
奔跑的数据库
阅读(27)
评论(0)
推荐(0)
摘要:
Foreign Data Wrapper openGauss的FDW(Foreign Data Wrapper)可以实现各个openGauss数据库及远程服务器(包括数据库、文件系统)之间的跨库操作。目前支持的远程数据库类型包括Oracle、Mysql(MariaDB)、openGauss(post 阅读全文
posted @ 2024-04-28 09:46
奔跑的数据库
阅读(26)
评论(0)
推荐(0)
摘要:
MOT SILO增强特性 SILO[对比:磁盘与MOT]凭借其基本算法流程,优于我们在研究实验中测试的许多其他符合ACID的OCC算法。然而,为了使SILO成为产品级机制,我们必须用许多在最初设计中缺失的基本功能来增强它,例如: 新增对交互式事务的支持,其中事务的SQL运行在客户端实现,而不是作为服 阅读全文
posted @ 2024-04-28 09:46
奔跑的数据库
阅读(21)
评论(0)
推荐(0)
摘要:
MOT SQL覆盖和限制 MOT设计几乎能够覆盖SQL和未来特性集。例如,大多数支持标准的Postgres SQL,也支持常见的数据库特性,如存储过程、自定义函数等。 下面介绍各种SQL覆盖和限制。 不支持的特性 MOT不支持以下特性: 跨引擎操作:不支持跨引擎(磁盘+MOT)的查询、视图或事务。计 阅读全文
posted @ 2024-04-28 09:46
奔跑的数据库
阅读(24)
评论(0)
推荐(0)
摘要:
MOT VACUUM清理 使用VACUUM进行垃圾收集,并有选择地分析数据库,如下所示。 【openGauss】 在openGauss中,VACUUM用于回收死元组占用的存储空间。在正常的openGauss操作中,删除的元组或因更新而作废的元组不会从表中物理删除。只能由VACUUM清理。因此,需要定 阅读全文
posted @ 2024-04-28 09:45
奔跑的数据库
阅读(112)
评论(0)
推荐(0)

浙公网安备 33010602011771号