数据库存储引擎.md
数据库存储引擎数据结构
- 哈希存储引擎是哈希表的持久化实现,支持增、删、改以及随机读取操作,但不支持顺序扫描,对应的存储系统为key-value存储系统。对于key-value的插入以及查询,哈希表的复杂度都是O(1),明显比树的操作O(n)快,如果不需要有序的遍历数据,哈希表就是your Mr.Right
- B树存储引擎是B树(关于B树的由来,数据结构以及应用场景可以看之前一篇博文)的持久化实现,不仅支持单条记录的增、删、读、改操作,还支持顺序扫描(B+树的叶子节点之间的指针),对应的存储系统就是关系数据库(Mysql等)。
- LSM树(Log-Structured Merge Tree)存储引擎和B树存储引擎一样,同样支持增、删、读、改、顺序扫描操作。而且通过批量存储技术规避磁盘随机写入问题。当然凡事有利有弊,LSM树和B+树相比,LSM树牺牲了部分读性能,用来大幅提高写性能。
LSM树
- 将对数据的修改增量保持在内存中,达到指定的大小限制后将这些修改操作批量写入磁盘
- 读取的时候稍微麻烦,需要合并磁盘中历史数据和内存中最近修改操作
- 基于LSM树实现的HBase的写性能比Mysql高了一个数量级,读性能低了一个数量级。
本文深入探讨了数据库存储引擎的关键类型,包括哈希存储引擎、B树存储引擎和LSM树存储引擎,分析了它们的数据结构特点及应用场景。哈希存储引擎适用于key-value存储,提供快速的增删改查操作;B树存储引擎支持单条记录操作和顺序扫描,常用于关系数据库;LSM树存储引擎通过批量存储技术提高写性能,牺牲部分读性能。
362

被折叠的 条评论
为什么被折叠?



