存储引擎
数据库存储引擎
存储引擎(或数据库引擎)是数据库管理系统的软件组件,负责在内存和磁盘上存储,检索和管理数据,旨在捕获每个节点的持久性长期内存尽管数据库可以响应复杂的查询,但是存储引擎可以更精细地查看数据并提供简单的数据处理
我们需要从许多可用的存储引擎中选择一个合适的。而且为了协调存储引擎以适配应用工作负载,你也需要大致了解存储引擎在底层究竟做什么。需要注意的是,针对事务性负载和分析性负载优化的存储引擎之间存在巨大差异。
存储引擎的分类
目前主流的存储引擎主要分为两大类:日志结构(log-structured)的存储引擎,以及面向页面(page-oriented)的存储引擎(例如
-
日志结构学派:只允许附加到文件和删除过时的文件,但不会更新已经写入的文件
Bitcask ,SSTables,LSM 树,LevelDB,Cassandra,HBase,Lucene 等都属于这个类别。 -
面向页面的就地更新学派:将磁盘视为一组可以覆写的固定大小的页面
B 树是这种哲学的典范,用在所有主要的关系数据库中和许多非关系型数据库。
诸如