openGauss课程之行存、列存、内存表

1.1 创建行存表
CREATE TABLE Gaiemsfq (state_id char(4),state_name varchar2(42),area_id number);

1.2 删除表
DROP TABLE Gaiemsfq;

1.3 行存本地更新
行存本地更新是指在数据库中对单行数据进行直接修改,而不需要涉及回滚段。

1.4 行存回滚段更新
行存回滚段更新则是在数据更新时使用回滚段来保存旧数据,以便在事务回滚或数据恢复时使用。

2.列存
列存引擎
如上图所示,是指将表按照列存储到硬盘分区上。

创建列存表
2.1 创建列存表
CREATE TABLE Gaiemsfq (state_id char(4),state_name varchar2(42),area_id number) WITH (ORIENTATION = COLUMN);

2.2 删除表
DROP TABLE Gaiemsfq;

3.内存表
内存引擎
openGauss引入了MOT(Memory-Optimized Table)存储引擎,它是一种事务性行存储,针对多核和大内存服务器进行了优化。
MOT为事务性的任务负载提供更高的性能。企业可以在关键任务、性能敏感的在线事务处理(OLTP)中使用MOT以实现高性能、
高吞吐、可预测低延迟以及多核服务器的高利用率。MOT与基于磁盘的普通表并排创建。MOT的有效设计实现了几乎完全的SQL覆盖,
并且支持完整的数据库功能集,如存储过程和自定义函数。

MOT完全支持ACID特性,包括严格的持久性和高可用性支持。
通过完全存储在内存中的数据和索引、非统一内存访问感知设计(NUMA-aware)、消除锁和锁存争用的算法以及查询原生编译,
MOT可提供更快的数据访问和更高的事务执行。
MOT几乎无锁的设计和高度调优的实现,使其在多核服务器上实现了卓越的近线性吞吐量扩展。

3.1 内存设置需满足:(max_mot_global_memory+max_mot_local_memory)+2GB < max_process_memory
3.2 要使特定用户能够创建和访问MOT(DDL、DML、SELECT),以下语句只执行一次
GRANT USAGE ON FOREIGN SERVER mot_server to <USER>;
3.3 创建MOT:
CREATE FOREIGN table Gaiemsfq ( sw int ) [server mot_server];
3.4 删除MOT:
DROP FOREIGN TABLE Gaiemsfq;
3.5 为MOT创建索引
CREATE INDEX Gaiemsfq_index1 on Gaiemsfq(sw);
3.6 磁盘表转换MOT:
3.6.1 使用gs_dump工具将磁盘表数据转储到磁盘的物理文件中
3.6.2 使用gs_restore将磁盘文件的数据加载/恢复到数据库表中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值