From 2808d262a472fff3e33545452514a894678f093b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=B2=91=E7=82=AF?= <834727721@qq.com> Date: Wed, 19 Feb 2025 16:52:20 +0800 Subject: [PATCH] Add description for segement compress table --- .../figures/Compression_extent.png | Bin 8487 -> 5892 bytes .../Segment_compress_space_mapping.png | Bin 0 -> 41345 bytes ...60\346\215\256\345\216\213\347\274\251.md" | 59 +++++++++++++++--- .../figures/Compression_extent.png | Bin 8487 -> 5892 bytes .../Segment_compress_space_mapping.png | Bin 0 -> 41345 bytes ...60\346\215\256\345\216\213\347\274\251.md" | 59 +++++++++++++++--- 6 files changed, 100 insertions(+), 18 deletions(-) create mode 100644 content/docs-lite/zh/docs/AboutopenGauss/figures/Segment_compress_space_mapping.png create mode 100644 content/zh/docs/AboutopenGauss/figures/Segment_compress_space_mapping.png diff --git a/content/docs-lite/zh/docs/AboutopenGauss/figures/Compression_extent.png b/content/docs-lite/zh/docs/AboutopenGauss/figures/Compression_extent.png index a0a6f44d8d6bc593751c40d4ac6739fec96d773c..c864d064d1d80d58569c86f53b6213df2620b8bf 100644 GIT binary patch literal 5892 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 QjTT2sO<%R@nQhqr0huXNJ^%m! diff --git a/content/docs-lite/zh/docs/AboutopenGauss/figures/Segment_compress_space_mapping.png b/content/docs-lite/zh/docs/AboutopenGauss/figures/Segment_compress_space_mapping.png new file mode 100644 index 0000000000000000000000000000000000000000..09f9a2a485514e8af836b35448a2d85a84b02580 GIT binary patch literal 41345 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 Xqn-YWt_y|9Yv7>_RaYpMGkN=eTj5A~ literal 0 HcmV?d00001 diff --git "a/content/docs-lite/zh/docs/AboutopenGauss/\346\224\257\346\214\201OLTP\345\234\272\346\231\257\346\225\260\346\215\256\345\216\213\347\274\251.md" "b/content/docs-lite/zh/docs/AboutopenGauss/\346\224\257\346\214\201OLTP\345\234\272\346\231\257\346\225\260\346\215\256\345\216\213\347\274\251.md" index 2d5b31817..13fb2c9d9 100644 --- "a/content/docs-lite/zh/docs/AboutopenGauss/\346\224\257\346\214\201OLTP\345\234\272\346\231\257\346\225\260\346\215\256\345\216\213\347\274\251.md" +++ "b/content/docs-lite/zh/docs/AboutopenGauss/\346\224\257\346\214\201OLTP\345\234\272\346\231\257\346\225\260\346\215\256\345\216\213\347\274\251.md" @@ -8,6 +8,8 @@ 在openGauss 5.1.0版本支持修改行存表的压缩相关参数。 +正式商用版本将在openGauss7.0.0 版本发布。 + ## 特性简介 @@ -38,7 +40,7 @@ openGauss OLTP场景数据压缩,采用透明页压缩的方式实现,在单 -一个pca页面管理128个pcd页面大小的空间,对应128个未压缩的数据页面,称为压缩中的一个extent。由于压缩后数据小于等于原始页面大小(若压缩后变大则不进行压缩),因此一个extent的末尾通常会有空闲空间未被占用,这部分空间我们采用文件系统punch hole的方式分配,不占用实际的磁盘空间,从而实现磁盘空间的压缩。 +一个pca页面管理127个pcd页面大小的空间,对应128个未压缩的数据页面,称为压缩中的一个`cfsExtent`。由于压缩后数据小于等于原始页面大小(若压缩后变大则不进行压缩),因此一个`cfsExtent`的末尾通常会有空闲空间未被占用,这部分空间我们采用文件系统punch hole的方式分配,不占用实际的磁盘空间,从而实现磁盘空间的压缩。 openGauss压缩采用通用压缩算法,可选算法有:ZSTD、PGLZ和ZLIB。这些通用压缩算法的解压性能通常较压缩算法要好很多,因此压缩特性对读取页面性能影响较小。而对于页面落盘操作,通常由后台线程异步执行,因此对用户sql性能影响也较小。 @@ -46,13 +48,13 @@ openGauss压缩采用通用压缩算法,可选算法有:ZSTD、PGLZ和ZLIB ## 特性约束 -- 仅支持堆组织形式数据表的压缩,即普通行存表、Btree/UBtree索引压缩。 +- 仅支持行存表和索引的压缩,即普通行存表、Btree/UBtree索引压缩,支持页式存储与段页式存储。 - 操作系统必须支持punch hole操作。 - 数据备份介质必须支持punch hole操作。 - 支持修改行存表的压缩相关参数,修改压缩相关参数会对行存表做重建。不支持修改索引的压缩相关参数。 - 压缩和解压缩的操作会对CPU、性能有一定的影响,优点是增大磁盘的存储能力,提高磁盘利用率,同时节省磁盘IO,减少磁盘IO压力。 -- 3.1.0 版本起,功能转为非商用特性,创建或修改行存压缩数据库对象时,需开启GUC参数`support_extended_features`。 -- 不支持段页式。 +- 3.1.0 版本起至7.0.0 版本前,功能转为非商用特性,创建或修改行存压缩数据库对象时,需开启GUC参数`support_extended_features`。 +- 7.0.0 版本前不支持段页式。 ## 依赖关系 @@ -63,19 +65,19 @@ openGauss压缩采用通用压缩算法,可选算法有:ZSTD、PGLZ和ZLIB #### 压缩页面读写 -一个压缩数据extent,由一个pca页面管理,其详细结构如下图: +一个压缩数据`cfsExtent`,由一个pca页面管理,其详细结构如下图: ![img](figures/Compression_pca_detail.png) -一个pca页面由头部的`CfsExtentHeader`和多个`CfsExtentAddress`组成。`CfsExtentHeader`中,`nblocks`为extent中逻辑页面个数,`allocate_chunks`表示当前pcd中已分配的chunk数,同时也表示已申请的最后一个chunk的编号,`chunk_size`为单个chunk的大小,`chunk_size`后的一字节存储了压缩算法以及碎片空间整理信息,最后一个字节`recv`为预留。 +一个pca页面由头部的`CfsExtentHeader`和多个`CfsExtentAddress`组成。`CfsExtentHeader`中,`nblocks`为`cfsExtent`中逻辑页面个数,`allocate_chunks`表示当前pcd中已分配的chunk数,同时也表示已申请的最后一个chunk的编号,`chunk_size`为单个chunk的大小,`chunk_size`后的一字节存储了压缩算法以及碎片空间整理信息,最后一个字节`recv`为预留。 -`CfsExtentAddress`与每个逻辑数据页面一一对应,前4字节为`chunksum`,`nchunks`和`allocated_chunks`各占1字节,分别代表压缩后数据当前占用chunk个数,以及该逻辑页面实际分配的chunk个数,后面为`chunknos`列表,每个占2字节,总共为1个逻辑页面最大可能的chunk数量,其中前`allocated_chunks`有效。例如,页面大小为8k,chunk_size为1k则此处`chunknos`为8个,如果压缩后数据占5k且只分配了5个chunk,则后3个`chunknos`无效。 +`CfsExtentAddress`与每个逻辑数据页面一一对应,前4字节为`chunksum`,`nchunks`和`allocated_chunks`各占1字节,分别代表压缩后数据当前占用chunk个数,以及该逻辑页面实际分配的chunk个数,后面为`chunknos`列表,每个占2字节,总共为1个逻辑页面最大可能的chunk数量,其中前`allocated_chunks`有效。例如,页面大小为8k,`chunk_size`为1k则此处`chunknos`为8个,如果压缩后数据占5k且只分配了5个chunk,则后3个`chunknos`无效。 前文介绍过内存逻辑页面和磁盘压缩数据存储的转化,而上图结合pca展示了压缩数据的页面读写流程。 页面写入: -- 根据逻辑页号计算其所在extent和extent内序号,读取extent内pca页面,获取`CfsExtentHeader`,以及该逻辑页面的地址信息结构`CfsExtentAddress`; +- 根据逻辑页号计算其所在`cfsExtent`和`cfsExten`t内序号,读取cfsExtent内pca页面,获取`CfsExtentHeader`,以及该逻辑页面的地址信息结构`CfsExtentAddress`; - 通过通用压缩算法压缩数据,并以chunk_size为单位切分数据; - 从extent内分配相应数量chunk,更新内存`CfsExtentHeader`和`CfsExtentAddress`; - 将压缩后数据写入磁盘相应chunk内; @@ -83,7 +85,7 @@ openGauss压缩采用通用压缩算法,可选算法有:ZSTD、PGLZ和ZLIB 页面读取: -- 根据逻辑页号计算其所在extent和extent内序号,读取extent内pca页面,获取`CfsExtentHeader`,以及该逻辑页面的地址信息结构`CfsExtentAddress`; +- 根据逻辑页号计算其所在`cfsExtent`和`cfsExtent`内序号,读取`cfsExtent`内pca页面,获取`CfsExtentHeader`,以及该逻辑页面的地址信息结构`CfsExtentAddress`; - 读取所有chunk,拼接成压缩后数据; - 调用通用解压算法解压缩。 @@ -100,6 +102,42 @@ extent扩展: +#### 段页式适配 + +段页式的详细介绍可见[段页式存储结构](../DatabaseAdministrationGuide/段页式存储结构.md)。段页式下,数据分布满足如下特点: + +- 每个``共享同一个段页式空间(`SegSpace`),其中包含5个`Group`,每个`Group`对应1个逻辑文件,相同类型的extent存放在同一个逻辑文件中,逻辑文件由多个1G物理文件组成,例如`Group 0`对应逻辑文件的文件名为1,其由1、1.1、1.2等一系列物理文件组成,每个物理文件大小上限为1G,超过1G则触发下个物理文件的创建; + +- 每个表/索引有一个逻辑上的`segment`,该表的所有数据都存在该`segment`上; + +- 每个`segment`会挂载多个`extent`(段页式中的区,不同于压缩的`cfsExtent`),每个`extent`是一块连续的物理页面,`extent`之间不一定连续,但是同一个`extent`中的`page`连续。与此同时,每个`segment`能够申请的每种类型的`extent`的数量和顺序都是确定的,`Group 0`中的`extent`用于存储元数据,对于每个`segment`,在其余4个`Group`中存储的`extent`范围可见下表`Extent count range`,例如每个`segment`只能在`Group 1`也就是逻辑文件2中申请16个extent,每个extent大小为64K(注意这里的`extent count`为1到16是单个`segment`内的序号,实际上逻辑文件2内包含了该段页式空间下所有`segment`的前16个`extent`)。 + +| Group | Extent size | Extent logical page count | Extent count range | Total logical page count | Total size | File Name | +| ----- | ----------- | ------------------------- | ------------------ | ------------------------ | ---------- | --------- | +| 0 | 8K | 1 | / | / | / | 1 | +| 1 | 64K | 8 | [1, 16] | 128 | 1M | 2 | +| 2 | 1M | 128 | [17, 143] | 16384 | 128M | 3 | +| 3 | 8M | 1024 | [144, 255] | 128K | 1G | 4 | +| 4 | 64M | 8192 | [256, ...] | ... | ... | 5 | + +段页式表和索引也支持压缩,但由于段页式数据本身以段页式`extent`粒度组织,压缩数据以`cfsExtent`粒度组织,因此对于段页式压缩场景,这两者需要做一个适配。 + +由于cfsExtent包含128个页面(127个逻辑页面+1个PCA页面),以group 2为例,一个extent正好是128个页面,若分配给压缩表,其实际上由1个cfsExtent组成,因此只能够存储127个逻辑页面。同理,group 3和group 4的每个extent分别由8个以及64个cfsExtent构成。每个cfsExtent内的处理逻辑和页式存储一致,分配128个页面后,pcd区域初始化时采用punch hole打洞,不占用实际空间,到数据写入时才分配空间。而对于group 1,由于其本身extent大小小于1个cfsExtent,即使分配给压缩表,其数据也不会被压缩。 + +![img](figures/Segment_compress_space_mapping.png) + +| Group | Extent size | Extent logical page count | Extent count range | Total logical page count | Total size | File Name | +| ----- | ----------- | ------------------------- | ------------------ | ------------------------ | ---------- | --------- | +| 0 | 8K | 1 | / | / | / | 1 | +| 1 | 64K | 8 | [1, 16] | 128 | 1M | 2 | +| 2 | 1M | 127 | [17, 143] | 16252 | 128M | 3 | +| 3 | 8M | 1016 | [144, 255] | 127K | 1G | 4 | +| 4 | 64M | 8128 | [256, ...] | ... | ... | 5 | + +由于pca页面的存在,压缩表分配到的段页式extent只能表示原有的`127/128`的页面,如1M extent对于非压缩表来说能存放128个页,而若表为压缩表,则这个extent只能存放127个逻辑页面。因此,对于段页式压缩表,逻辑页号和物理页号的转换如上图,group 2、3、4内的extent能够表示的页面变为原有的`127/128`。 + + + ## 使用指导 相关参数见[高效数据压缩算法相关参数](../DatabaseReference/高效数据压缩算法相关参数.md)。 @@ -109,7 +147,10 @@ extent扩展: - 建压缩表 ```sql +-- 页式存储 create table tbl (c_int1 int, c_int2 int) with (compresstype=2,compress_chunk_size=1024,compress_level=1); +-- 段页式存储 +create table tbl (c_int1 int, c_int2 int) with (segment=on, compresstype=2,compress_chunk_size=1024,compress_level=1); ``` - 建压缩主键和索引 diff --git a/content/zh/docs/AboutopenGauss/figures/Compression_extent.png b/content/zh/docs/AboutopenGauss/figures/Compression_extent.png index a0a6f44d8d6bc593751c40d4ac6739fec96d773c..c864d064d1d80d58569c86f53b6213df2620b8bf 100644 GIT binary patch literal 5892 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 QjTT2sO<%R@nQhqr0huXNJ^%m! diff --git a/content/zh/docs/AboutopenGauss/figures/Segment_compress_space_mapping.png b/content/zh/docs/AboutopenGauss/figures/Segment_compress_space_mapping.png new file mode 100644 index 0000000000000000000000000000000000000000..09f9a2a485514e8af836b35448a2d85a84b02580 GIT binary patch literal 41345 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 Xqn-YWt_y|9Yv7>_RaYpMGkN=eTj5A~ literal 0 HcmV?d00001 diff --git "a/content/zh/docs/AboutopenGauss/\346\224\257\346\214\201OLTP\345\234\272\346\231\257\346\225\260\346\215\256\345\216\213\347\274\251.md" "b/content/zh/docs/AboutopenGauss/\346\224\257\346\214\201OLTP\345\234\272\346\231\257\346\225\260\346\215\256\345\216\213\347\274\251.md" index 2d5b31817..13fb2c9d9 100644 --- "a/content/zh/docs/AboutopenGauss/\346\224\257\346\214\201OLTP\345\234\272\346\231\257\346\225\260\346\215\256\345\216\213\347\274\251.md" +++ "b/content/zh/docs/AboutopenGauss/\346\224\257\346\214\201OLTP\345\234\272\346\231\257\346\225\260\346\215\256\345\216\213\347\274\251.md" @@ -8,6 +8,8 @@ 在openGauss 5.1.0版本支持修改行存表的压缩相关参数。 +正式商用版本将在openGauss7.0.0 版本发布。 + ## 特性简介 @@ -38,7 +40,7 @@ openGauss OLTP场景数据压缩,采用透明页压缩的方式实现,在单 -一个pca页面管理128个pcd页面大小的空间,对应128个未压缩的数据页面,称为压缩中的一个extent。由于压缩后数据小于等于原始页面大小(若压缩后变大则不进行压缩),因此一个extent的末尾通常会有空闲空间未被占用,这部分空间我们采用文件系统punch hole的方式分配,不占用实际的磁盘空间,从而实现磁盘空间的压缩。 +一个pca页面管理127个pcd页面大小的空间,对应128个未压缩的数据页面,称为压缩中的一个`cfsExtent`。由于压缩后数据小于等于原始页面大小(若压缩后变大则不进行压缩),因此一个`cfsExtent`的末尾通常会有空闲空间未被占用,这部分空间我们采用文件系统punch hole的方式分配,不占用实际的磁盘空间,从而实现磁盘空间的压缩。 openGauss压缩采用通用压缩算法,可选算法有:ZSTD、PGLZ和ZLIB。这些通用压缩算法的解压性能通常较压缩算法要好很多,因此压缩特性对读取页面性能影响较小。而对于页面落盘操作,通常由后台线程异步执行,因此对用户sql性能影响也较小。 @@ -46,13 +48,13 @@ openGauss压缩采用通用压缩算法,可选算法有:ZSTD、PGLZ和ZLIB ## 特性约束 -- 仅支持堆组织形式数据表的压缩,即普通行存表、Btree/UBtree索引压缩。 +- 仅支持行存表和索引的压缩,即普通行存表、Btree/UBtree索引压缩,支持页式存储与段页式存储。 - 操作系统必须支持punch hole操作。 - 数据备份介质必须支持punch hole操作。 - 支持修改行存表的压缩相关参数,修改压缩相关参数会对行存表做重建。不支持修改索引的压缩相关参数。 - 压缩和解压缩的操作会对CPU、性能有一定的影响,优点是增大磁盘的存储能力,提高磁盘利用率,同时节省磁盘IO,减少磁盘IO压力。 -- 3.1.0 版本起,功能转为非商用特性,创建或修改行存压缩数据库对象时,需开启GUC参数`support_extended_features`。 -- 不支持段页式。 +- 3.1.0 版本起至7.0.0 版本前,功能转为非商用特性,创建或修改行存压缩数据库对象时,需开启GUC参数`support_extended_features`。 +- 7.0.0 版本前不支持段页式。 ## 依赖关系 @@ -63,19 +65,19 @@ openGauss压缩采用通用压缩算法,可选算法有:ZSTD、PGLZ和ZLIB #### 压缩页面读写 -一个压缩数据extent,由一个pca页面管理,其详细结构如下图: +一个压缩数据`cfsExtent`,由一个pca页面管理,其详细结构如下图: ![img](figures/Compression_pca_detail.png) -一个pca页面由头部的`CfsExtentHeader`和多个`CfsExtentAddress`组成。`CfsExtentHeader`中,`nblocks`为extent中逻辑页面个数,`allocate_chunks`表示当前pcd中已分配的chunk数,同时也表示已申请的最后一个chunk的编号,`chunk_size`为单个chunk的大小,`chunk_size`后的一字节存储了压缩算法以及碎片空间整理信息,最后一个字节`recv`为预留。 +一个pca页面由头部的`CfsExtentHeader`和多个`CfsExtentAddress`组成。`CfsExtentHeader`中,`nblocks`为`cfsExtent`中逻辑页面个数,`allocate_chunks`表示当前pcd中已分配的chunk数,同时也表示已申请的最后一个chunk的编号,`chunk_size`为单个chunk的大小,`chunk_size`后的一字节存储了压缩算法以及碎片空间整理信息,最后一个字节`recv`为预留。 -`CfsExtentAddress`与每个逻辑数据页面一一对应,前4字节为`chunksum`,`nchunks`和`allocated_chunks`各占1字节,分别代表压缩后数据当前占用chunk个数,以及该逻辑页面实际分配的chunk个数,后面为`chunknos`列表,每个占2字节,总共为1个逻辑页面最大可能的chunk数量,其中前`allocated_chunks`有效。例如,页面大小为8k,chunk_size为1k则此处`chunknos`为8个,如果压缩后数据占5k且只分配了5个chunk,则后3个`chunknos`无效。 +`CfsExtentAddress`与每个逻辑数据页面一一对应,前4字节为`chunksum`,`nchunks`和`allocated_chunks`各占1字节,分别代表压缩后数据当前占用chunk个数,以及该逻辑页面实际分配的chunk个数,后面为`chunknos`列表,每个占2字节,总共为1个逻辑页面最大可能的chunk数量,其中前`allocated_chunks`有效。例如,页面大小为8k,`chunk_size`为1k则此处`chunknos`为8个,如果压缩后数据占5k且只分配了5个chunk,则后3个`chunknos`无效。 前文介绍过内存逻辑页面和磁盘压缩数据存储的转化,而上图结合pca展示了压缩数据的页面读写流程。 页面写入: -- 根据逻辑页号计算其所在extent和extent内序号,读取extent内pca页面,获取`CfsExtentHeader`,以及该逻辑页面的地址信息结构`CfsExtentAddress`; +- 根据逻辑页号计算其所在`cfsExtent`和`cfsExten`t内序号,读取cfsExtent内pca页面,获取`CfsExtentHeader`,以及该逻辑页面的地址信息结构`CfsExtentAddress`; - 通过通用压缩算法压缩数据,并以chunk_size为单位切分数据; - 从extent内分配相应数量chunk,更新内存`CfsExtentHeader`和`CfsExtentAddress`; - 将压缩后数据写入磁盘相应chunk内; @@ -83,7 +85,7 @@ openGauss压缩采用通用压缩算法,可选算法有:ZSTD、PGLZ和ZLIB 页面读取: -- 根据逻辑页号计算其所在extent和extent内序号,读取extent内pca页面,获取`CfsExtentHeader`,以及该逻辑页面的地址信息结构`CfsExtentAddress`; +- 根据逻辑页号计算其所在`cfsExtent`和`cfsExtent`内序号,读取`cfsExtent`内pca页面,获取`CfsExtentHeader`,以及该逻辑页面的地址信息结构`CfsExtentAddress`; - 读取所有chunk,拼接成压缩后数据; - 调用通用解压算法解压缩。 @@ -100,6 +102,42 @@ extent扩展: +#### 段页式适配 + +段页式的详细介绍可见[段页式存储结构](../DatabaseAdministrationGuide/段页式存储结构.md)。段页式下,数据分布满足如下特点: + +- 每个``共享同一个段页式空间(`SegSpace`),其中包含5个`Group`,每个`Group`对应1个逻辑文件,相同类型的extent存放在同一个逻辑文件中,逻辑文件由多个1G物理文件组成,例如`Group 0`对应逻辑文件的文件名为1,其由1、1.1、1.2等一系列物理文件组成,每个物理文件大小上限为1G,超过1G则触发下个物理文件的创建; + +- 每个表/索引有一个逻辑上的`segment`,该表的所有数据都存在该`segment`上; + +- 每个`segment`会挂载多个`extent`(段页式中的区,不同于压缩的`cfsExtent`),每个`extent`是一块连续的物理页面,`extent`之间不一定连续,但是同一个`extent`中的`page`连续。与此同时,每个`segment`能够申请的每种类型的`extent`的数量和顺序都是确定的,`Group 0`中的`extent`用于存储元数据,对于每个`segment`,在其余4个`Group`中存储的`extent`范围可见下表`Extent count range`,例如每个`segment`只能在`Group 1`也就是逻辑文件2中申请16个extent,每个extent大小为64K(注意这里的`extent count`为1到16是单个`segment`内的序号,实际上逻辑文件2内包含了该段页式空间下所有`segment`的前16个`extent`)。 + +| Group | Extent size | Extent logical page count | Extent count range | Total logical page count | Total size | File Name | +| ----- | ----------- | ------------------------- | ------------------ | ------------------------ | ---------- | --------- | +| 0 | 8K | 1 | / | / | / | 1 | +| 1 | 64K | 8 | [1, 16] | 128 | 1M | 2 | +| 2 | 1M | 128 | [17, 143] | 16384 | 128M | 3 | +| 3 | 8M | 1024 | [144, 255] | 128K | 1G | 4 | +| 4 | 64M | 8192 | [256, ...] | ... | ... | 5 | + +段页式表和索引也支持压缩,但由于段页式数据本身以段页式`extent`粒度组织,压缩数据以`cfsExtent`粒度组织,因此对于段页式压缩场景,这两者需要做一个适配。 + +由于cfsExtent包含128个页面(127个逻辑页面+1个PCA页面),以group 2为例,一个extent正好是128个页面,若分配给压缩表,其实际上由1个cfsExtent组成,因此只能够存储127个逻辑页面。同理,group 3和group 4的每个extent分别由8个以及64个cfsExtent构成。每个cfsExtent内的处理逻辑和页式存储一致,分配128个页面后,pcd区域初始化时采用punch hole打洞,不占用实际空间,到数据写入时才分配空间。而对于group 1,由于其本身extent大小小于1个cfsExtent,即使分配给压缩表,其数据也不会被压缩。 + +![img](figures/Segment_compress_space_mapping.png) + +| Group | Extent size | Extent logical page count | Extent count range | Total logical page count | Total size | File Name | +| ----- | ----------- | ------------------------- | ------------------ | ------------------------ | ---------- | --------- | +| 0 | 8K | 1 | / | / | / | 1 | +| 1 | 64K | 8 | [1, 16] | 128 | 1M | 2 | +| 2 | 1M | 127 | [17, 143] | 16252 | 128M | 3 | +| 3 | 8M | 1016 | [144, 255] | 127K | 1G | 4 | +| 4 | 64M | 8128 | [256, ...] | ... | ... | 5 | + +由于pca页面的存在,压缩表分配到的段页式extent只能表示原有的`127/128`的页面,如1M extent对于非压缩表来说能存放128个页,而若表为压缩表,则这个extent只能存放127个逻辑页面。因此,对于段页式压缩表,逻辑页号和物理页号的转换如上图,group 2、3、4内的extent能够表示的页面变为原有的`127/128`。 + + + ## 使用指导 相关参数见[高效数据压缩算法相关参数](../DatabaseReference/高效数据压缩算法相关参数.md)。 @@ -109,7 +147,10 @@ extent扩展: - 建压缩表 ```sql +-- 页式存储 create table tbl (c_int1 int, c_int2 int) with (compresstype=2,compress_chunk_size=1024,compress_level=1); +-- 段页式存储 +create table tbl (c_int1 int, c_int2 int) with (segment=on, compresstype=2,compress_chunk_size=1024,compress_level=1); ``` - 建压缩主键和索引 -- Gitee