转载自:https://xie.infoq.cn/article/9057757fdf76a56f568de16ae
介绍
在存储系统的设计中,存储引擎属于底层数据结构,直接决定了存储系统所能够提供的性能和功能。常见存储算法结构涵盖:哈希存储,B 、B+、B*树存储,LSM 树存储引擎,R 树,倒排索引,矩阵存储,对象与块,图结构存储等等。
哈希存储引擎是哈希表的持久化实现,一般用于键值类型的存储系统。而大多传统关系型数据库使用索引来辅助查找数据,用以加速对数据库数据的访问。考虑到经常需要范围查找,因此其索引一般使用树型结构。譬如 MySQL、SQL Server、Oracle 中,数据存储与索引的基本结构是 B-树和 B+树。
主流的 NoSQL 数据库则使用日志结构合并树(Log-structured Merge Tree)来组织数据。LSM 树存储引擎和 B 树一样,支持增、删、改、随机读取以及顺序扫描。通过批量转储技术规避磁盘随机写入问题,极大地改善了磁盘的 IO 性能,被广泛应用于后台存储系统,如 Google Big table、Level DB,Facebook Cassandra 系统,开源的 HBase,Rocks dB 等等。