数据结构对比_存储引擎_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树是一种平衡树,查找给定关键字的方法是,首先读取根节点,然后在根节点包含的关键字中查找,若找到则成功,否则根据指针继续查找,直至找到或指针为空。