我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Hash存储模型、B-Tree存储模型、LSM存储模型介绍

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Hash存储模型、B-Tree存储模型、LSM存储模型介绍

Hash存储模型、B-Tree存储模型、LSM存储模型介绍

每一种数据存储系统,对应有一种存储模型,或者叫存储引擎。我们今天要介绍的是三种比较流行的存储模型,分别是:

  1. Hash存储模型
  2. B-Tree存储模型
  3. LSM存储模型

不同存储模型的应用情况

Hash存储模型

  • redis
  • memcache

B-Tree存储模型

  • MySQL(以及大多数的关系型数据库)
  • MongoDB

LSM树存储模型

  • HBase
  • RocksDB

不同存储模型介绍

1、Hash存储模型

Hash存储模型其实就是HashMap(哈希表)的持久化实现。这种模型的特点是与HashMap有密切关系的。我们知道HashMap可以支持:put(key)增加/修改、delete(key)删除、get(key)随机获取操作,但是HashMap不支持get(1)这样的操作。因为HashMap是无序的,不支持顺序扫描。针对put、get操作,它的时间复杂度是O(1),也就是说读写速度都很快,所以针对单个Key的操作是非常快速的。如果我们在应用中无需遍历数据,Hash引擎是非常合适的。

image

首先,通过key,找到对应的文件编号。这个检索的过程,是通过HashMap来实现的。

其次,通过文件编号找到存储中的文件

再者,通过value长度和位置找到对应的行数据

最后,读取出value内容


2、B-Tree存储模型

B-Tree存储模型由于是树状结构存储,所以,它是不支持随机读写的。就像我们学习二叉树时,查找数据得通过遍历树的方式来查找数据。

image

上图是一种典型的B-Tree存储索引。叶子节点保存了每行的完整数据,非叶子节点保存了索引信息。数据在每个节点都是有序存储的,但查询数据的时候,需要从根节点遍历,然后根据二分查找直到找到叶子节点。如果数据不再内存中,需要从磁盘中读取,并加载到缓存。B+树的根节点是常驻内存的,最多需要h-1次磁盘IO,复杂度为O(h) = O(logdN)。修改操作首先要记录提交日志,然后在修改内存中的B+树。

3、LSM树存储引擎

LSM树的思想很容易理解,就是将数据的新增、修改增量数据先保存在内存中,到达指定的大小限制后将修改操作批量写入到磁盘。读取时,需要合并磁盘中的历史数据和内存中最近的修改操作。LSM的优势在于有效地随机写入问题,但读取可能需要访问较多的磁盘文件。

image

  • Level 0 :日志/内存
    • 先写入预写日志,再写内存
    • 写入日志是为了保障可用性
  • Level 1:日志/内存,当Level 0写入达到阈值,通过异步方式将部分数据刷写到硬盘上
  • Level 2:合并,由于不断刷写会产生大量小文件,这样不利于管理和查询。需要在合适的时机启动一个异步线程进行合并操作生成一个大文件

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Hash存储模型、B-Tree存储模型、LSM存储模型介绍

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Hash存储模型、B-Tree存储模型、LSM存储模型介绍

每一种数据存储系统,对应有一种存储模型,或者叫存储引擎。我们今天要介绍的是三种比较流行的存储模型,分别是:Hash存储模型B-Tree存储模型LSM存储模型不同存储模型的应用情况1、Hash存储模型redismemcache2、B-Tree存储模型MySQL(
Hash存储模型、B-Tree存储模型、LSM存储模型介绍
2015-05-23

MySQL的存储引擎与HBase的存储模型比较

MySQL和HBase在存储引擎和存储模型上有显著差异,各自适用于不同的应用场景。以下是两者的比较:MySQL的存储引擎InnoDB:MySQL的默认存储引擎,支持事务处理、行级锁定和外键约束,适用于需要高可靠性和事务支持的应用场景。M
MySQL的存储引擎与HBase的存储模型比较
2024-10-19

RocketMQ的存储模型怎么掌握

本篇内容主要讲解“RocketMQ的存储模型怎么掌握”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“RocketMQ的存储模型怎么掌握”吧!RocketMQ简介RocketMQ有Producer、
2023-07-04

一文彻底掌握RocketMQ的存储模型

这篇文章主要介绍了RocketMQ的存储模型,本文的重点在于分析BrokerServer的消息存储模型,笔者按照自己的理解,尝试分析RocketMQ的存储模型,需要的朋友可以参考下
2022-12-31

Java内存模型JMM的介绍

这篇文章主要讲解了“Java内存模型JMM的介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java内存模型JMM的介绍”吧!一、为什么要有内存模型在现代多核处理器中,每个处理器都有自己的
2023-06-15

HBase的存储模型如何支持高并发

HBase的存储模型通过其分布式架构、列式存储、预分区策略、数据模型设计和优化,以及系统配置调整等多种方式,有效地支持了高并发操作。以下是HBase存储模型支持高并发的关键方面:HBase的存储模型分布式架构:HBase采用分布式架构,将
HBase的存储模型如何支持高并发
2024-10-19

SAP CRM Survey调查问卷的存储模型是怎样的

本篇文章给大家分享的是有关SAP CRM Survey调查问卷的存储模型是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。数据库表CRM_SVY_DB_SVS,通过如下的函
2023-06-04

PaddlePaddle深度学习框架的模型压缩与存储优化

PaddlePaddle深度学习框架提供了多种模型压缩与存储优化技术,帮助用户在保证模型精度的前提下减小模型大小,提高模型性能和运行效率。以下是一些常用的模型压缩与存储优化技术:参数量压缩:通过使用稀疏矩阵、低秩矩阵等技术对模型参数进行压缩
PaddlePaddle深度学习框架的模型压缩与存储优化
2024-04-24

C语言进制转换、整数和小数内存存储模型是什么

本篇内容主要讲解“C语言进制转换、整数和小数内存存储模型是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言进制转换、整数和小数内存存储模型是什么”吧! 什么是进制进制也就是进位计数制,是
2023-06-08

JavaScript MVC架构中的模型:数据存储和管理的艺术

JavaScript MVC架构中的模型负责存储和管理数据,是应用程序的核心组成部分。本文将深入探讨模型在JavaScript MVC架构中的作用,重点介绍如何使用模型存储和管理数据。
JavaScript MVC架构中的模型:数据存储和管理的艺术
2024-02-12

ONNX模型的存储与加载过程中需要注意什么

在存储与加载ONNX模型时,需要注意以下几点:版本兼容性:确保使用兼容版本的ONNX来保存和加载模型,以避免出现兼容性问题。序列化与反序列化:在存储和加载过程中,确保正确地序列化和反序列化模型数据,以确保模型的完整性和准确性。确保模型结构一
ONNX模型的存储与加载过程中需要注意什么
2024-04-08

HBase的存储模型如何支持高效的数据删除操作

HBase的存储模型通过逻辑删除和Compaction机制来支持高效的数据删除操作,旨在平衡数据删除与性能需求,确保数据的有效管理和存储。以下是HBase存储模型支持高效数据删除操作的关键点:HBase存储模型的关键特性逻辑删除:HBas
HBase的存储模型如何支持高效的数据删除操作
2024-10-22

Redis中的Hash类型是用来存储什么样的数据

Redis中的Hash类型是用来存储键值对的数据结构,其中每个键都对应一个哈希表,哈希表中存储了多个键值对。这种数据结构适用于存储对象的字段和值,如存储用户信息、商品信息等。可以通过Hash类型实现对对象的部分字段更新或查询。
Redis中的Hash类型是用来存储什么样的数据
2024-04-09

数据库模型的颠覆者:新技术如何改变数据存储和管理方式

在数据存储和管理领域,新技术层出不穷,这些技术正在颠覆传统的数据库模型,以更有效和更灵活的方式满足不断增长的数据需求。
数据库模型的颠覆者:新技术如何改变数据存储和管理方式
2024-02-11

编程热搜

目录