计算机基础之:LSM树

使用过hbase、cassandra之类nosql数据库的小伙伴对LSM树结构应该有所耳闻,那么这种数据结构有哪些优劣势呢,本文做下简单介绍。

LSM(全称:Log-Structured Merge Tree)是一种广泛应用于现代数据库和存储系统的数据结构,尤其适合于写密集型应用场景。想象一下LSM如同一个高效的图书馆管理系统,我们通过它的优势与劣势来形象生动地描述这一概念。

优势:高效快速的图书归档与检索

  1. 高速录入:想象图书馆每天都要接收大量新书,LSM就像一个拥有高效自动分类机的图书馆,新书一到就立刻被贴上标签(日志记录),快速放入暂存区(内存表),无需立刻按索引整理到书架上(磁盘的有序数据结构),大大加快了书籍的录入速度,对应于数据库中的快速写入。

  2. 后台整理:到了夜深人静的时候,图书馆闭馆,LSM开始它的工作------将暂存区的书按照一定规则(合并策略)整理到书架上,这个过程称为合并(Merge),使得书架上的书籍有序,便于下次查找,对应于数据库在后台合并小文件,减少查询时的I/O操作。

  3. 高效查询:尽管书籍的最终位置可能在多次合并后才确定,但LSM通过维护一个指向书籍最新位置的索引(内存索引),让读者(查询)能迅速找到所需书籍,保证了查询的效率。

劣势:查找与空间的权衡

  1. 查询延迟:虽然有即时索引,但在极端情况下,如果一本书刚被借走(数据还未合并到磁盘的有序部分),读者可能需要在多个暂存区查找,增加了查询的复杂性和潜在延迟,就像读者需要翻阅多个书目清单才能找到书的新位置。

  2. 空间开销:LSM的后台合并过程会产生一定的空间冗余,就像图书馆在整理书籍时,旧的索引卡可能还在,新的索引卡已生成,这期间会有数据的重复存储。同时,频繁的合并操作也意味着更多的磁盘I/O操作,可能会影响整体的存储效率。

  3. 写放大:在数据从内存表迁移到磁盘的整个过程中,数据可能会被多次复制和合并,这就像书籍在从暂存区转移到书架的过程中,可能要经过几个中间的分类区域,增加了写操作的总量,即所谓的"写放大"。

综上所述,LSM如同一个高效但略显复杂的图书管理系统,它通过牺牲一定程度的查询效率和存储空间,换取了极高的数据写入速度,特别适合那些需要快速处理大量写入请求的场景,如在线日志处理、大数据存储等。

相关推荐
Sunshine~L&H2 分钟前
Mac 上使用 mysql -u root -p 命令,出现“zsh: command not found: mysql“?如何解决
数据库·mysql·macos
chanalbert1 小时前
数据库连接池深度研究分析报告
数据库·spring
Mikhail_G1 小时前
Python应用八股文
大数据·运维·开发语言·python·数据分析
snpgroupcn2 小时前
泰国零售巨头 CJ Express 借助 SAP 内存数据库实现高效数据管理
数据库·express·零售
明月看潮生4 小时前
青少年编程与数学 01-011 系统软件简介 19 SSMS 数据库管理工具
数据库·青少年编程·编程与数学
blammmp4 小时前
Redis : set集合
数据库·redis·缓存
翔云1234564 小时前
精准测量 MySQL 主从复制延迟—pt-heartbeat工具工作原理
数据库·mysql
厚衣服_34 小时前
第15篇:数据库中间件高可用架构设计与容灾机制实现
java·数据库·中间件
明月看潮生5 小时前
青少年编程与数学 01-011 系统软件简介 13 Microsoft SQL Server数据库
数据库·microsoft·青少年编程·系统软件
LUCIAZZZ5 小时前
项目拓展-Jol分析本地对象or缓存的内存占用
java·开发语言·jvm·数据库·缓存·springboot