一起学习国产自研数据库GaussDB(DWS)【这次高斯不是数学家】

简介: 一起学习国产自研数据库GaussDB(DWS)【这次高斯不是数学家】

一,什么是GaussDB?这次高斯不是数学家

GaussDB是华为公司数据库产品品牌名。华为公司从开始自研数据库至今已经有近20年历史,其中经历了早期发展、GaussDB的诞生和发展、数据库产业化三个阶段。本文简明介绍华为公司自研数据库的历程,并给出一些GaussDB的里程碑时间点。GaussDB的发展历史是中国数据库发展历程的典型案例。GaussDB以云服务形式提供商业版本,并已在2020年中期推出开源数据库产品openGauss(社区网址为https://opengauss.org )。
在这里插入图片描述

二,搜索路径

show search_path; 查看模式搜索路径,无论如何搜索路径前两个一定是pg_temp和pg_catalog

set search_path to my_schema,public; 将my_schema,public两个模式加入搜索路径

三,模式

select current_schema; 查看数据库当前模式
set current_schema=my_schema; 设置当前数据库模式。
\dn 查看所有模式及其所有者

create schema my_schema authorization dlpuser; 创建schema并指定owner
 用户只能访问属于自己schema中的数据库对象,若要访问其他人的schema中数据库对象则必须具有该schema的usage权限。

四,关键设计

在这里插入图片描述
GTM 只维护一个CSN++ ,快照(snapshot)只包含CSN。
DN(Data Node,数据节点)本地维护事务ID(唯一标识符),维护ID 到CSN的映射(CSN_LOG)。
DN本地垃圾回收的过程中回填CSN。
单分片读事务使用本地快照:
① 获取本地最新的CSN 和准备阶段事务号;
② 如果CSN 状态为“提交中”则进行等待;
③ 如果row.CSN< localsnapshot.csn || xid in prepared_xid list可
见,否则不可见。

五,GaussDB 200详细解释

多:超大集群:Shared-Nothing架构+独创的大规模集群通讯技术,最大支持1024节点,支持在线扩容。
快: 并行计算架构:充分利用集群中所有资源,提供极致分析性能,且随着集群规模扩展性能线性增长。 行列混存,极速查询分析:行列混存+向量化执行, 并行Bulk Load,数据快速入库。
好: 全组件HA:无单节点故障,支持跨DC容灾。 租户隔离:租户资源隔离,适合运营商多部门多业务场景。
省: 开放架构:X86、ARM服务器部署,降低TCO。 标准SQL, 平滑应用迁移: 兼容标准ANSI SQL92、SQL2003应用改造小, 提供Oracle、Teradata语法迁移工具。

在这里插入图片描述

六,数据读写原理

1) 解析器从客户端应用获取输入的数据;

2) 解析器对数据进行解析后,将数据分发给各个处理单元进行处理;

3) 各个处理单元把接受的记录存储到它自己的逻辑磁盘中;

4) 每一个处理单元的逻辑磁盘可以是一个磁盘阵列中的多块物理磁盘。

在这里插入图片描述

相关文章
|
1月前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
129 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
2月前
|
SQL NoSQL 关系型数据库
数据库学习
【10月更文挑战第8天】
30 1
|
2月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
84 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
2月前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
185 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
2月前
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
71 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
|
2月前
|
关系型数据库 MySQL 数据库
mysql关系型数据库的学习
mysql关系型数据库的学习
23 0
|
2月前
|
存储 NoSQL Java
使用 Java 了解和学习 NoSQL 数据库:三个主要优势
使用 Java 了解和学习 NoSQL 数据库:三个主要优势
21 0
|
4月前
|
Cloud Native 关系型数据库 分布式数据库
国产数据库的发展趋势是什么?
【8月更文挑战第26天】国产数据库的发展趋势是什么?
117 15
|
4月前
|
SQL 存储 关系型数据库
如何系统地学习数据库?
如何系统地学习数据库?【8月更文挑战第25天】
56 0
|
9天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
73 15