列存zedstore

邮件列表

1、动机与目标

1)列子集查询性能提升(减小IO)

2)相对于heap表,减小磁盘占用空间。Tuple头更小,利用压缩数据

3)表数据可以列式存储形式独立于表数据

4)完全符合MVCC

5)支持所有索引

6)混合行列存储,一些列可以一起存储,另外可独立存储

7)分列的粒度非常灵活,可以把一起访问的列存储到一起

8)不需要分开的toast表

9)快速add/drop列或者更改列的数据类型,避免全部重写表

2、设计

简单说,忽略列存储概念,将之认为压缩的行存储。列存储是这个概念的扩展,在下节解释。最基本的磁盘数据结构是B-tree,以TID为索引列。注意,这不是现有的Btree索引,而是独立于表数据存储的另外新Btree。

TID-逻辑行标识符

TID是一个48位的行标识符。传统的分割方法:分为block和偏移显得无意义。为了通过TID查询一个tuple,必须深度遍历B-tree。页分裂或者合并操作可以通过逻辑TID将tuple移动到不同页。

B-tree内部页非常简单,每个页仅仅存储TID数组以及downlinkpairs。叶子页具有short未压缩的头,接着为btree的条目。存在两种条目:普通条目,包含一个元组或者一个数据,未压缩的payload;一个“container item”,有多个普通条目,压缩

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值