openGauss学习笔记-92 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用MOT SQL覆盖和限制92.1 不支持的特性92.2 MOT限制92.3 不支持的DDL操作92.4 不支持的数据类型92.5 不支持的索引DDL和索引92.6 不支持的DML92.7 不支持的JIT功能(原生编译和执行)
openGauss学习笔记-92 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用MOT SQL覆盖和限制
MOT设计几乎能够覆盖SQL和未来特性集。例如,大多数支持标准的Postgres SQL,也支持常见的数据库特性,如存储过程、自定义函数等。
下面介绍各种SQL覆盖和限制。
92.1 不支持的特性
MOT不支持以下特性:
-
隔离性:不支持SERIALIZABLE隔离。
-
查询原生编译(JIT):SQL覆盖范围有限。
-
本地内存限制为1GB。一个事务只能更改小于1GB的数据。
-
容量(数据+索引)受限于可用内存。
-
不支持全文检索索引。
-
不支持逻辑复制特性。
-
不支持保存点。
此外,下面详细列出了MOT、MOT索引、查询和DML语法的各种通用限制,以及查询原生编译的特点和限制。
92.2 MOT限制
MOT功能限制:
-
分区
-
AES加密、数据动态脱敏、行级访问控制
-
流操作
-
自定义类型
-
子事务:仅支持存储过程的语句块上下文,且有以下限制:MOT恢复支持仅包含SELECT操作的子事务,且仅允许只读回滚。在这种情况下,父事务将中止。
-
DML触发器
-
DDL触发器
-
“C”或“POSIX”以外的排序规则
92.3 不支持的DDL操作
-
CREATE FORIGN table LIKE:有限支持,LIKE可以用于任何表(MOT和堆表),但不带任何选项、数据或索引。
-
创建as select表
-
按范围分区
-
创建无日志记录子句(no-logging clause)的表
-
创建可延迟约束主键(DEFERRABLE)
-
重建索引
-
表空间
-
使用子命令创建架构
92.4 不支持的数据类型
-
UUID
-
User-Defined Type (UDF)
-
Array data type
-
NVARCHAR2(n)
-
Clob
-
Name
-
Blob
-
Raw
-
Path
-
Circle
-
Reltime
-
Bit varying(10)
-
Tsvector
-
Tsquery
-
JSON
-
Box
-
Text
-
Line
-
Point
-
LSEG
-
POLYGON
-
INET
-
CIDR
-
MACADDR
-
Smalldatetime
-
BYTEA
-
Bit
-
Varbit
-
OID
-
Money
-
Any unlimited varchar/character varying
-
HSTORE
-
XML
-
Int16
-
Abstime
-
Tsrange
-
Tstzrange
-
Int8range
-
Int4range
-
Numrange
-
Daterange
-
HLL
92.5 不支持的索引DDL和索引
-
在小数和数值类型上创建索引
-
在可空列上创建索引
-
单表创建索引总数>9
-
在键大小>256的表上创建索引
键大小包括以字节为单位的列大小+列附加大小,这是维护索引所需的开销。下表列出了不同列类型的列附加大小。
此外,如果索引不是唯一的,额外需要8字节。
下面是伪代码计算键大小:
keySize =0;
for each (column in index){
keySize += (columnSize + columnAddSize);
}
if (index is non_unique) {
keySize += 8;
}列类型 列大小 列附加大小 varchar N 4 tinyint 1 1 smallint 2 1 int 4 1 longint 8 1 float 4 2 double 8 3
上表中未指定的类型,列附加大小为零(例如时间戳)。
92.6 不支持的DML
-
Merge into
-
Lock table
-
Copy from table
-
Upsert
92.7 不支持的JIT功能(原生编译和执行)
-
存储过程编译:仅访问MOT表的存储过程可用。
-
查询涉及两个以上的表
-
查询有以下任何一个情况:
-
非原生类型的聚合
-
窗口功能
-
子查询子链接
-
Distinct-ON修饰语(distinct子句来自DISTINCT ON)
-
递归(已指定WITH RECURSIVE)
-
修改CTE(WITH中有INSERT/UPDATE/DELETE)
-
以下子句不支持轻量执行:
-
Returning list
-
Group By clause
-
Grouping sets
-
Having clause
-
Windows clause
-
Distinct clause
-
Sort clause that does not conform to native index order:支持,但所有排序列都必须存在于SELECT中。
-
Set operations
-
Constraint dependencies
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!