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
 
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!










