8小时玩转openGauss训练营之MOT表

您所在的位置:网站首页 训练营签到表 8小时玩转openGauss训练营之MOT表

8小时玩转openGauss训练营之MOT表

2023-08-26 07:32| 来源: 网络整理| 查看: 265

在以前的经验中,很多时候出现的性能问题都是由磁盘性能引起,很多时候我们总在吐槽存储性能太差,存储延时、吞吐达不到需求,而后在优化SQL中,首当其冲被抓出来的SQL 基本都是有全表扫描、索引全扫描执行计划的。 那么针对这个问题,是否有其他非优化SQL而能实现性能提升的办法呢,有的。 像Oracle有In memory,不过之前也没怎么去深入了解,这次正好在openGauss的8小时训练营学习中,有了较全面的了解的,在此简单做个总结。 MOT:简而言之就是内存表,也就是在MOT表里保存的数据在系统启动时都是直接加载到内存中。 其主要优点有: 高吞吐量:3倍于磁盘表,6倍于PG 12.2 低延迟:事务加速3倍至5.5倍 严格一致性保障的HA和RTO openGausss在实现MOT上主要在下面这些点上做了针对性的优化: 1)内存优化数据结构 2)无锁事务管理 3)无锁索引 3)NUMA感知,事务本地内存 4)高效、可靠的持久化 5)查询本机编译(JIT)

事务管理

在内存管理上,openGauss分配了两块内存: 全局内存:所有CPU核心共享的长期内存,主要用于存储所有表数据和索引 本地内存:是短期的私有内存,主要用于在会话中处理事务,并将数据更改存储在本地内存中,直到提交阶段。 在事务处理上,openGauss将相关数据从全局内存复制到本地内存,待事务处理完成后再将这些数据从本地内存推回到全局内存,而在这个事务处理中是基于OCC的算法,以最小化降低在全局内存上的争用时间。

使用语法

创建一张MOT表也是非常简单的,我们只需要在创建普通表的语法上增加关键字 FOREIGN 就可以了。而其他操作就跟普通表一样对待就可以了。 创建MOT: create FOREIGN table test(x int) [server mot_server]; 查询: select * from test;

性能

在基于TPC-C测试中,可以看到在事务率,延迟时间,MOT对比磁盘表以及其他数据库都有很大的性能提升。 image.png 而在初始启动时,MOT可在40秒内加载100 GB数据库检查点,实现极快速的初次启动。

关于openGauss的MOT大概就先介绍到这里了,更多特性和使用,小伙伴可以自己参考官方资料哦 https://opengauss.org/zh/docs/1.1.0/docs/DeveloperGuide/内存表特性.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3