数据结构对比_存储引擎_WiredTiger通过B树和压缩算法减小数据存储空间

数据结构对比

WiredTiger和RocksDB在数据结构上有很大的不同。

数据结构 WiredTiger RocksDB
主要数据结构 B树 LSM树
特点 平衡树,一次IO操作读取多个节点 基于磁盘,数据分层次存储

存储引擎对比

两个数据库在存储引擎上也各有特点。

存储引擎 WiredTiger RocksDB
主要存储引擎 MVCC WAL
特点 支持多版本并发控制,避免读取不一致数据 写前日志,保证数据不丢失

压缩算法对比

它们在压缩数据方面也有不同的选择。

压缩算法 WiredTiger RocksDB
常用算法 Snappy、Zlib、LZ4 LZ4、Zstd、BZip2
特点 保证压缩比,不影响读取性能 平衡压缩比和读取性能

读取性能对比

WiredTiger和RocksDB在读取性能上都有优势。

WiredTiger通过B树结构,一次IO操作读取多个节点。

RocksDB通过LSM树结构,将数据缓存于内存,提升读取效率。

写入性能对比

两个数据库在写入性能上都很出色。

WiredTiger使用MVCC和多线程写入,支持高并发写入。

RocksDB利用WAL和LSM树结构,将数据写入内存,提高写入效率。

磁盘空间利用率对比

在磁盘空间利用率上,两者也有所区别。

WiredTiger通过B树和压缩算法减小数据存储空间。

RocksDB通过LSM树将数据分层次存储,减少磁盘空间浪费。

延伸阅读:

什么是B树?

B树是一种平衡树,查找给定关键字的方法是,首先读取根节点,然后在根节点包含的关键字中查找,若找到则成功,否则根据指针继续查找,直至找到或指针为空。