很荣幸能参加这次训练营,以下是一些我感兴趣的点,做下笔记:
- openGauss是基于PostgreSQL内核,优化了体系结构、事务、存储引擎、优化器和ARM体系结构。
- MOT,是openGauss免锁,高吞吐,低时延的融合内存引擎。MOT支持绝大部分SQL特性(函数、存储过程…),符合ACID要求,基于事务行存储,与传统磁盘引擎并排基于磁盘的存储引擎。MOT存储引擎使用和扩展外部数据封装机制,嵌在openGauss内部的存储引擎。
优势:
- 性能高
- CPU 利用率高
- 延迟低
特性:
- 内存优化数据结构
- 无锁索引
- 无锁事务管理
- 针对NUMA优化的内存管理,预缓存对象池
- 针对NUMA高度优化的组提交
基本语句:
- 授权:grant usage on foreign sever mot_server to user;
- MOT建表语法:create foreign table XXX [server mot_server].
- 查询语法同普通表:select * from XXX;
- 删除:drop foreign table XXX;
- 索引创建:create index mot_table_indx on mot_table(id);
- 集中式部署:集中式部署又包括单机和主备两种类型。主备方式最多支持8个节点。
分布式部署:分布式部署方面,数据按shard划分,读写负载准线性扩展,满足大规模业务量场景,支持两地三中心高可用部署。
分布式采用GTM-Lite技术提供全局事务快照和提交号管理,实现强一致性,且无中心节点性能瓶颈。同时提供无锁、多版本、高并发事务这些高性能的事务处理能力,避免了单GTM的性能瓶颈。
- 高并发优化:
GaussDB采用线程池模型,线程池在数据库服务器上配置,控制数据库服务器活动线程数目。线程复用。对系统的业务起到流控作用,防止出现雪崩。高并发连接切换代价小、内存损耗小,执行效率高。
增量检查点技术:
GaussDB采用增量Checkpoint机制,可以解决全量checkpoint大量IO写问题,以“小批快跑”的方式,提高数据的安全性,降低恢复时间。实现性能波动<5%。
-
查询优化
- 通过统计信息进行物理优化,物理优化的依据,来源于表信息的统计。
- 行数估算代价估算的基础,来源于基表统计信息的推算。
- 代价估算,根据关系的行数,推算出当前算子的执行代价。
- 路径搜索,依据若干算子的执行代价通过求解最优路径进行路径搜索。
- 计划生成,将查询的执行路径转换 成PlanTree能够输出给 执行器做查询执行。
物理优化的技术点:
1、统计信息模型 Table/Column-Level statistics 描述基表数据的特征包括唯一值、MCV值等,用于行数估算
2、行数估算 Row Estimation 估算基表baserel、Join中间结果集joinrel、Aggregation 中结果集大小,为代价估算做准备
3. 代价估算 Cost Estimation 根据数据量估算不同算子执行代价,各算子代价之和即为 计划总代价
4. 路径搜索 Access Path Generation 通过求解路径最优算法(e.g. 动态规划、遗传算法)处理 连接路径搜索过程,以最小搜索空间找到最优连接路径。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




