暂无图片
暂无图片
11
暂无图片
暂无图片
暂无图片

主流国产数据库的存储引擎

白鳝的洞穴 2024-11-26
713

存储引擎的结构决定了数据库的一些基本特性,数据库的功能实现与存储引擎关系密切。我以前也多次撰文讲到没有完美的存储引擎,某种类型的 存储引擎必然在某些领域有优势,但是在其他方面存在缺点。LSM-TREE存储引擎前些年十分热,大家都认为这种新型的存储引擎将会成为未来的主流。OceanBase、TiDB、Yuga等数据库都采用了LSM-TREEE存储引擎。在高并发写入和简单的定位查询方面,LSM-TREE表现不俗,但是这些年也暴露出来在7*24的关键业务系统中,合并带来的负面影响,这个影响比基于HEAP 的ASTORE(比如PG)的Vacuum影响还要大。有得必有失。BTREE存储引擎天然有打散热数据的能力,但是维护BTREE的成本以及一致性读产生的IO放大问题要比普通的 HEAP存储引擎要大不少。当然有些学术文章吧BTREE看成是HEAP的一个子类型。不过我们的分类还是把它们分为两类。在普通情况下二者差别确实不大,不过要实现类似Oracle RAC的功能,二者的差别就更大了。

其实 存储引擎涉及的细节很多 ,不是简单从分类就能给某个数据库排排座次的,我以前在几本书里都分析过O记的存储引擎,包括块结构,行结构。O记的行锁与存储引擎的完美结合,真的可以称为艺术品。前阵子和一个在做RAC的国产数据库厂商的研发人员聊天的时候,他也感叹这一点。他觉得虽然他们处处学习Oracle,但是没有行内的锁标志位,让他们在实现RAC上遇到了很多性能问题。

目前主流国产数据库除了在传统行式存储引擎的基础上进行了优化改造,大部分都进一步地提供了列式存储引擎,有些还提供了内存引擎。下表是我梳理的一些国产数据库 的存储引擎方面的特征,可能有些不够准确的地方,如果大家发现了,请帮我纠正一下。

数据库

数据库类型

行存引擎

行存子格式

支持列存

支持内存

支持压缩存储

OceanBase        

分布式数据库

LSM-TREE

                    

TRUE

FALSE

TRUE

GaussDB

分布式数据库

HEAP

ASTORE/USTORE

TRUE

TRUE

TRUE

GoldenDB

分布式数据库

BTREE

                    

TRUE

FALSE

TRUE

DM DPC

分布式数据库

BTREE

                    

TRUE

FALSE

TRUE

TDSQL

分布式数据库

BTREE

                    

TRUE

TRUE

TRUE

PolarDB-X

分布式数据库

BTREE

                    

TRUE

FALSE

TRUE

GBase 8c

分布式数据库

HEAP

ASTORE

TRUE

TRUE

TRUE

TiDB

分布式数据库

LSM-TREE

                    

TRUE

FALSE

TRUE

DM8

集中式数据库

BTREE

                    

TRUE

FALSE

TRUE

DM DSC

集中式数据库

BTREE

                    

TRUE

FALSE

TRUE

PolarDB-O

集中式数据库

HEAP

ASTORE

TRUE

FALSE

TRUE

KingBaseES

集中式数据库

HEAP

ASTORE

TRUE

FALSE

TRUE

YashanDB

集中式数据库

HEAP

USTORE

TRUE

TRUE

TRUE

AntDB

集中式数据库

HEAP

ASTORE

TRUE

FALSE

TRUE

HighGo

集中式数据库

HEAP

ASTORE

TRUE

FALSE

TRUE

HighGo EE        

集中式数据库

HEAP

ASTORE

TRUE

FALSE

TRUE

VastBase G100

集中式数据库

HEAP

ASTORE

TRUE

TRUE

TRUE

              

文章转载自白鳝的洞穴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论