openGauss学习笔记-92 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用MOT SQL覆盖和限制

文章目录

    • openGauss学习笔记-92 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用MOT SQL覆盖和限制
      • 92.1 不支持的特性
      • 92.2 MOT限制
      • 92.3 不支持的DDL操作
      • 92.4 不支持的数据类型
      • 92.5 不支持的索引DDL和索引
      • 92.6 不支持的DML
      • 92.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; 
    }
    
    列类型列大小列附加大小
    varcharN4
    tinyint11
    smallint21
    int41
    longint81
    float42
    double83

上表中未指定的类型,列附加大小为零(例如时间戳)。

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

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/127289.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

51单片机+EC11编码器实现可调参菜单+OLED屏幕显示

51单片机+EC11编码器实现可调参菜单+OLED屏幕显示 📍相关篇《stc单片机使用外部中断+EC11编码器实现计数功能》 🎈《STC单片机+EC11编码器实现调节PWM输出占空比》 🌼实际操作效果 🍁整个项目实现框架: 📓EC11接线原理图: 📓项目工程简介 📝仅凭借一个EC11编…

【UE】在游戏运行时,通过选择uasset来生成静态网格体

目录 主要流程 步骤 一、创建用于包含静态网格体的Actor蓝图 二、按钮点击事件 效果 主要流程 用户点击按钮后产生一个文件对话框,用户通过文件对话框选择指定的文件夹,我们获取到这个文件夹路径后处理成“按路径获取资产”节点所需的输入&#x…

【C++设计模式之组合模式:结构型】分析及示例

简介 组合模式是一种结构型设计模式,它能够将对象组合成树形结构以表示“整体-部分”的层次结构,并且能够使用相同的方式处理单个对象和组合对象。组合模式使得客户端可以一致地处理单个对象和组合对象,无需关心具体的对象类型。 组合模式将对…

回归预测 | MATLAB实现PSO-SVR粒子群优化支持向量机回归多输入单输出预测

回归预测 | MATLAB实现PSO-SVR粒子群优化支持向量机回归多输入单输出预测 目录 回归预测 | MATLAB实现PSO-SVR粒子群优化支持向量机回归多输入单输出预测预测效果基本介绍模型描述程序设计预测效果 <

12.1 使用键盘鼠标监控钩子

本节将介绍如何使用Windows API中的SetWindowsHookEx和RegisterHotKey函数来实现键盘鼠标的监控。这些函数可以用来设置全局钩子&#xff0c;通过对特定热键挂钩实现监控的效果&#xff0c;两者的区别在于SetWindowsHookEx函数可以对所有线程进行监控&#xff0c;包括其他进程中…

手机投屏电脑软件AirServer5.6.3.0最新免费版本下载

随着智能手机的普及&#xff0c;越来越多的人喜欢用手机观看视频、玩游戏、办公等。但是&#xff0c;有时候手机屏幕太小&#xff0c;不够清晰&#xff0c;也不方便操作。这时候&#xff0c;如果能把手机屏幕投射到电脑上&#xff0c;就可以享受更大的视野&#xff0c;更流畅的…

SpringMVC的视图

文章目录 1. ThymeleafView2. 转发视图3. 重定向视图4. 视图控制器view-controller5. 总结6. 荐书 SpringMVC中的视图是View接口&#xff0c;视图的作用渲染数据&#xff0c;将模型Model中的数据展示给用户SpringMVC视图的种类很多&#xff0c;默认有转发视图和重定向视图 当工…

【Node.js】NPM 和 package.json

NPM npm 是 Node.js 的包管理工具&#xff0c;基于命令行&#xff0c;用于安装、升级、移除、管理依赖项。 常用命令&#xff1a; npm init&#xff1a;初始化一个新的 npm 项目&#xff0c;创建 package.json 文件。&#xff08;括号里为默认值&#xff09; description&am…

如何保证 RabbitMQ 的消息可靠性?

项目开发中经常会使用消息队列来完成异步处理、应用解耦、流量控制等功能。虽然消息队列的出现解决了一些场景下的问题&#xff0c;但是同时也引出了一些问题&#xff0c;其中使用消息队列时如何保证消息的可靠性就是一个常见的问题。如果在项目中遇到需要保证消息一定被消费的…

DRM全解析 —— CRTC详解(1)

本文参考以下博文&#xff1a; Linux内核4.14版本——drm框架分析(4)——crtc分析 特此致谢&#xff01; 1. 简介 CRTC实际上可以拆分为CRTC。CRT的中文意思是阴极摄像管&#xff0c;就是当初老电视上普遍使用的显像管&#xff08;老电视之所以都很厚&#xff0c;就是因为它…

最全解决docker配置kibana报错 Kibana server is not ready yet

问题复现&#xff1a; 在浏览器输入http://192.168.101.65:5601/ 访问kibana报错 Kibana server is not ready yet 问题报错&#xff1a; 首先查看kibana的日志 docker logs kibana 看到报错如下&#xff1a; {"type":"log","timestamp":&q…

基于BERT模型进行文本处理(Python)

基于BERT模型进行文本处理(Python) 所有程序都由Python使用Spyder运行。 对于BERT&#xff0c;在运行之前&#xff0c;它需要安装一些环境。 首先&#xff0c;打开Spyder。其次&#xff0c;在控制台中单独放置要安装的&#xff1a; pip install transformers pip install tor…