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将磁盘文件的数据加载/恢复到数据库表中