使用MOT非常简单,以下几个小节将会进行描述。
openGauss允许应用程序使用MOT和基于标准磁盘的表。MOT适用于最活跃、高竞争和对吞吐量敏感的应用程序表,也可用于所有应用程序的表。
以下命令介绍如何创建MOT,以及如何将现有的基于磁盘的表转换为MOT,以加速应用程序的数据库相关性能。MOT尤其有利于已证明是瓶颈的表。
工作流程概述
以下是与使用MOT相关的任务的简单概述:
以授予数据库用户对MOT存储引擎的访问权限为例。每个数据库用户仅执行一次,通常在初始配置阶段完成。
说明: MOT通过外部数据封装器(Foreign Data Wrapper,FDW)机制与openGauss数据库集成,所以需要授权用户权限。
要使特定用户能够创建和访问MOT(DDL、DML、SELECT),以下语句只执行一次:
GRANT USAGE ON FOREIGN SERVER mot_server TO ;
所有关键字不区分大小写。
创建MOT非常简单。只有MOT中的创建和删除表语句与openGauss中基于磁盘的表的语句不同。SELECT、DML和DDL的所有其他命令的语法对于MOT表和openGauss基于磁盘的表是一样的。
创建MOT:
create FOREIGN table test(x int) [server mot_server];
以上语句中:
删除名为test的MOT:
drop FOREIGN table test;
ALTER TABLE
支持添加列、删除列和重命名列。
有关MOT的功能限制(如数据类型),请参见MOT SQL覆盖和限制。
支持标准的PostgreSQL创建和删除索引语句。
例如:
create index text_index1 on test(x) ;
创建一个用于TPC-C的ORDER表,并创建索引:
create FOREIGN table bmsql_oorder (
o_w_id integer not null,
o_d_id integer not null,
o_id integer not null,
o_c_id integer not null,
o_carrier_id integer,
o_ol_cnt integer,
o_all_local integer,
o_entry_d timestamp,
primary key (o_w_id, o_d_id, o_id)
);
create index bmsql_oorder_index1 on bmsql_oorder(o_w_id, o_d_id, o_c_id, o_id) ;
说明: 在MOT名字之前不需要指定FOREIGN关键字,因为它仅用于创建和删除表的命令。
有关MOT索引限制,请参见“MOT SQL覆盖和限制”的索引部分内容。
点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!