【赵渝强老师】高斯数据库(openGauss)的段、区、块

简介: 本文详解openGauss逻辑存储结构,涵盖数据库集群、表、索引等对象及其OID机制,并深入解析段(Segment)、区(Extent)、块(Block)三级存储单元:段是对象空间集合,区由连续块组成,块(默认8KB)为最小I/O单位。

b463.png

openGauss的逻辑存储结构主要是指数据库中的各种数据库对象,包括:数据库集群、数据库、表、索引、视图等等。所有数据库对象都有各自的对象标识符oid(object identifiers),它是一个无符号的四字节整数,相关对象的oid都存放在相关的系统目录表中,比如数据库的oid和表的oid分别存放在pg_database,pg_class表中。下图展示了openGauss数据库的逻辑存储结构。

image.png


视频讲解如下:


下面重点讨论一下openGauss数据库中的段、区和块。

一、 段-Segment

一个段是分配给一个逻辑结构,如:一个表、一个索引或其他对象的一组区,它是数据库对象使用空间的集合。段可以有表段、索引段、回滚段、临时段和高速缓存段等,而最常用的段就是表段和索引段。


二、 区-Extent

区是数据库存储空间分配的一个逻辑单位,它由连续数据块所组成。一个段是由一个或多个磁盘盘区组成。当一段中间所有空间已完全使用,OpenGauss会自动为该段分配一个新的磁盘盘区范围。


三、 块-Block(Page)

数据块是openGauss管理数据文件中存储空间的单位,为数据库使用的I/O的最小单位。数据库是最小的逻辑存储单位,其默认值8K。通过参数block_size可以查看当前数据库的数据块大小。

openGauss=# show block_size;
 block_size 
------------
 8192
 
(1 row)


在OpenGauss中,数据的读写是以数据块为最小单位。在编译openGauss时通过指定BLCKSZ参数大小将决定数据块的大小。每个表文件由都由BLCKSZ字节大小的数据块组成。在分析型数据库中,适当增加BLCKSZ大小可以小幅度提升数据库的性能。

相关文章
人工智能 缓存 前端开发
11084 52
人工智能 JavaScript 开发工具
4204 13
开发工具 Swift git
1654 3
人工智能 Java BI
1029 1
人工智能 JavaScript 测试技术
1508 2
缓存 JavaScript Shell
1906 3
人工智能 JavaScript 测试技术
725 4
Web App开发 人工智能 API
692 1
Shell API 调度
1039 3

热门文章

最新文章