
DDIA
文章平均质量分 92
现今很多应用程序都是 数据密集型(data-intensive) 的,而非 计算密集型(compute-intensive) 的。因此CPU很少成为这类应用的瓶颈,更大的问题通常来自数据量、数据复杂性、以及数据的变更速度。
数据密集型应用通常由标准组件构建而成,标准组件提供了很多通用的功能;例如,
言之。
点一盏洁白的灯, 照一照漆黑的眠。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【读书笔记】设计数据密集型应用 DDIA 第三章:存储与检索
本文介绍了数据库存储与检索的核心原理,重点对比了B树和LSM树两种主流存储引擎的特点。B树适合读取密集型场景,提供稳定的查询性能;LSM树在写入密集型应用中表现更优,具有更好的压缩效率。文章还解析了哈希索引、SSTables等索引结构,区分了OLTP(事务处理)和OLAP(分析处理)两种数据处理模式,并介绍了列存储、数据仓库等优化技术。最后提供了索引选择、存储引擎选型等实用建议,帮助开发者根据应用场景做出合理的技术决策。理解这些底层原理对数据库性能优化和架构设计至关重要。原创 2025-07-30 14:53:19 · 788 阅读 · 0 评论 -
【读书笔记】设计数据密集型应用 DDIA 第二章
本文系统介绍了三种主流数据模型及其查询语言。关系模型以表格形式组织数据,支持规范化处理和多表连接;文档模型适合存储树状结构数据,灵活性高但关系处理较弱;图模型擅长处理复杂关联关系。各类查询语言中,SQL适用于关系模型,Cypher专为图数据库设计。文章指出应根据数据结构特点(如关系复杂度、层次性)和业务需求选择合适模型,在社交网络等复杂场景可采用混合存储策略。最后提供不同难度面试题,帮助理解模型选择与优化方法。原创 2025-07-30 13:47:26 · 549 阅读 · 0 评论 -
【读书笔记】设计数据密集型应用 DDIA 第一章
本文概述了数据密集型应用的核心特性与设计原则。数据密集型应用区别于计算密集型应用,其瓶颈主要来自数据处理而非CPU性能,通常由数据库、缓存、搜索索引等组件构成。可靠性方面,系统需应对硬件故障、软件错误和人为失误,通过冗余设计、测试和监控等手段保障。可扩展性关注负载增长处理能力,需合理选择纵向/横向扩展策略,重视性能百分位指标。可维护性强调降低运维成本,包括可操作性、简单性和可演化性三个维度。后续内容将深入探讨实现这些目标的具体技术与架构。原创 2025-07-30 13:38:47 · 289 阅读 · 0 评论