小红花·文摘
  • 首页
  • 广场
  • 排行榜🏆
  • 直播
  • FAQ
Dify.AI

本文介绍了如何从零开始实现LSM-Tree存储引擎,涵盖日志、MemTable、SSTable、Bloom Filter和Compaction等核心概念,并提供完整的C代码、架构图和数学推导,深入探讨LSM-Tree的设计哲学及其在数据库中的应用。

数据库内核实验索引

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-04-22T00:00:00Z

B+树和LSM树是两种主要的数据结构,分别代表原地更新和追加写入的存储方式。B+树优化读取和空间,但写放大较高;LSM树优化写入,但读取和空间放大较高。RUM猜想表明,无法在读、写和空间放大上同时达到最优。B+树适合OLTP场景,而LSM树在写入密集型应用中表现更好。选择存储引擎时需考虑具体应用需求。

B+tree 与 LSM-tree:两种存储引擎哲学的碰撞

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-04-19T00:00:00Z

自1972年提出以来,B-tree成为数据库和文件系统的核心数据结构,因其与磁盘I/O模型的契合而减少随机读次数,查找效率高,适合大规模数据。B+tree是其变体,优化了范围查询和并发控制。节点分裂与合并是保持平衡的关键操作。现代存储引擎如InnoDB和PostgreSQL基于B-tree,适应硬件演进,继续发挥重要作用。

B-tree 深度解剖:从磁盘 I/O 模型到 boltdb 源码

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-04-18T00:00:00Z

多模持久化是一种架构策略,根据不同数据需求选择合适的存储引擎。随着业务增长,单一数据库难以满足多样化需求,导致性能瓶颈。本文探讨了CAP定理与PACELC模型在数据库选型中的应用,分析了五种主流存储引擎的适用场景及局限性,并以Uber的案例展示了从Postgres迁移到MySQL+Schemaless的过程及教训,强调根据业务需求灵活选择存储引擎的重要性。

【系统架构设计百科】多模数据库选型:Polyglot Persistence 的工程实践

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-04-13T00:00:00Z

时序数据库(TSDB)专为处理大量时序数据而设计,传统关系型数据库难以应对。时序数据按时间顺序记录,写入频繁、读取稀少。本文分析了时序数据的特征、编码压缩原理、存储引擎设计及降采样策略,并对主流TSDB(如InfluxDB、Prometheus、TimescaleDB)进行了架构对比,为监控与物联网场景提供参考。

【系统架构设计百科】时序数据架构:监控与 IoT 的存储设计

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-04-13T00:00:00Z

MySQL的插件式存储引擎架构支持多种存储引擎,主要包括默认的InnoDB(适合OLTP)和专为OLAP设计的DuckDB。DuckDB与MySQL兼容,提升查询性能并降低存储成本。

当 MySQL 遇到 DuckDB

baotiao
baotiao · 2026-01-24T00:00:00Z

本文比较了MySQL中的两种存储引擎:InnoDB和MyISAM。InnoDB支持事务、行级锁和外键,适合高并发场景;MyISAM性能优越,但不支持事务和行级锁,适合查询频繁的场景。选择存储引擎应根据具体业务需求。

详解MySQL两种存储引擎MyISAM和InnoDB的优缺点

程序新视界
程序新视界 · 2025-10-26T11:51:00Z
Datadog推出Monocle,一款统一的Rust驱动的实时时间序列指标引擎

Datadog推出了Monocle,这是一款用Rust编写的实时时间序列存储引擎,统一了指标存储基础设施,提升了数据摄取速度和查询效率,简化了操作,同时解决了存储架构的并发和扩展性问题,提供了更高的性能和成本效益。

Datadog推出Monocle,一款统一的Rust驱动的实时时间序列指标引擎

InfoQ
InfoQ · 2025-09-22T14:00:00Z
JavaLSM:基于LSM树的Java键值存储

本文介绍了如何用Java从零构建LSM树存储引擎,重点在数据管道的实现。JavaLSM提供简单的键值接口,支持内存缓冲和磁盘SSTables,具备快速读取、自动压缩和崩溃恢复等功能。通过红黑树和布隆过滤器的使用,优化了存储和查询效率,增强了对LSM存储引擎的理解。

JavaLSM:基于LSM树的Java键值存储

DEV Community
DEV Community · 2025-05-11T14:01:52Z
MySQL如何处理单条数据插入

MySQL架构分为服务器层和存储引擎层。服务器层包括连接管理器、查询缓存、解析器、优化器和执行器,负责处理客户端连接、分析SQL语句、选择执行路径和执行操作。存储引擎层负责数据存储,默认引擎为InnoDB。写入操作涉及连接、解析、优化、执行和日志记录等步骤。

MySQL如何处理单条数据插入

DEV Community
DEV Community · 2025-04-12T22:15:16Z
实时写入密集型工作负载:考虑因素与建议

密集型数据库工作负载面临高成本写入、锁定延迟和I/O瓶颈等挑战。实时写入工作负载涉及大量数据和严格的延迟要求,广泛应用于物联网、在线游戏和电子商务等领域。选择合适的存储引擎架构(如LSM树)、压缩策略和批处理方法可显著提升写入性能。

实时写入密集型工作负载:考虑因素与建议

The New Stack
The New Stack · 2025-03-14T16:00:42Z
通过OrioleDB提升Postgres性能

OrioleDB是Postgres的一个重要扩展,提供替代存储引擎,解决了Postgres堆存储的问题。测试表明,OrioleDB在CPU和内存资源使用上优于Postgres堆。

通过OrioleDB提升Postgres性能

DEV Community
DEV Community · 2025-02-28T23:10:38Z
数据库存储引擎如何演变以适应互联网规模

数据库存储引擎设计对性能至关重要。现代数据库采用“外部更新”方法来处理大规模写入负载,通常分为块存储、记录存储和访问方法。外部更新通过将更新追加到内存中的写入块来优化写入性能,但牺牲了读取性能。LSM树是常用的存储结构,适合大量写入场景。

数据库存储引擎如何演变以适应互联网规模

The New Stack
The New Stack · 2025-01-14T17:00:33Z

在信息技术快速发展的背景下,MySQL作为流行的开源数据库,其性能和稳定性至关重要。了解存储引擎(如InnoDB)和索引机制是提升MySQL性能的关键。索引可以提高查询效率,但可能影响更新速度。选择合适的存储引擎和索引策略能够有效满足不同应用场景的需求。

MySQL存储引擎及索引简介

京东科技开发者
京东科技开发者 · 2024-12-18T01:30:05Z
第三章 - 数据存储与访问

数据库的主要功能是存储和查询数据。选择合适的存储引擎至关重要,因为不同引擎在事务负载和分析负载上有显著差异。

第三章 - 数据存储与访问

DEV Community
DEV Community · 2024-11-18T01:11:16Z
SlateDB:基于云对象存储的‘无底’数据库

SlateDB是一款新开源存储引擎,利用云对象存储实现低成本的键值存储,简化架构。它采用零磁盘架构,支持高可扩展性和数据持久性,用户可根据需求调整一致性和可用性,运行于AWS S3和Azure Blob Storage,成本低于DynamoDB。

SlateDB:基于云对象存储的‘无底’数据库

The New Stack
The New Stack · 2024-11-07T15:00:18Z
MyISAM与InnoDB的比较

构建数据库时需考虑性能、数据完整性和事务管理等因素。MySQL提供多种存储引擎,如InnoDB和MyISAM。InnoDB适合高并发和数据完整性要求,而MyISAM适合只读应用,读取速度更快。此外,MySQL还有MEMORY、ARCHIVE和CSV等引擎,适用于特定需求。

MyISAM与InnoDB的比较

DEV Community
DEV Community · 2024-11-05T02:54:47Z

本文介绍了GaussDB(DWS)行执行引擎的组成和功能,包括扫描算子、连接算子、物化算子和控制算子。行执行引擎是查询的执行者,负责从存储引擎中读取数据并进行处理。文章还介绍了行执行引擎的执行框架和常见算子。

详解GaussDB(DWS)中的行执行引擎

华为云官方博客
华为云官方博客 · 2024-05-11T08:25:05Z
SQL 执行时发生了什么?

SQL是管理关系数据库中数据的强大语言,理解SQL语句的执行过程可以提升查询性能、改善资源管理和诊断性能问题。SQL标准确保不同数据库平台的互操作性和一致性。SQL语句是声明式和可移植的,允许开发人员专注于数据需求。在MySQL中,执行SQL语句涉及服务器层和存储引擎层。不同的存储引擎提供不同的访问表数据的方法。

SQL 执行时发生了什么?

ByteByteGo Newsletter
ByteByteGo Newsletter · 2024-04-25T15:30:51Z
为什么在MySQL或MariaDB中SELECT COUNT(*) FROM TABLE有时会非常慢

本文讨论了MySQL中SELECT COUNT(*) FROM TABLE查询速度慢的原因,包括明显和不明显的因素。明显的原因有表大小、存储引擎和并发工作负载,不明显的原因有MySQL变体和版本、事务上下文和表碎片化。文章还提到了MySQL和MariaDB版本之间的差异以及不同事务上下文中查询速度的差异。此外,还讨论了MySQL 8.0中并行读取线程和数据文件创建方式对查询结果的影响。总的来说,事务上下文对查询速度有重要影响,需要仔细考虑。

为什么在MySQL或MariaDB中SELECT COUNT(*) FROM TABLE有时会非常慢

Percona Database Performance Blog
Percona Database Performance Blog · 2024-04-15T13:02:26Z
  • <<
  • <
  • 1 (current)
  • 2
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

完成下面两步后,将自动完成登录并继续当前操作。

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
友情链接: MOGE.AI 九胧科技 模力方舟 Gitee AI 菜鸟教程 Remio.AI DeekSeek连连 53AI 神龙海外代理IP IPIPGO全球代理IP 东波哥的博客 匡优考试在线考试系统 开源服务指南 蓝莺IM Solo 独立开发者社区 AI酷站导航 极客Fun 我爱水煮鱼 周报生成器 He3.app 简单简历 白鲸出海 T沙龙 职友集 TechParty 蟒周刊 Best AI Music Generator

小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码