06-数据库学习笔记(存储模型与数据压缩)

发布时间:2026/8/1 4:14:18

06-数据库学习笔记(存储模型与数据压缩) 一.数据库三大业务负载数据库的业务负载直接决定后续存储模型和压缩方式的选择不同负载的查询特性、读写比例差异显著因此需要针对性适配这也是三大负载分类出现的核心原因。1.OLTP在线事物处理1核心定义面向日常在线交易、短事务、高频随机读写的业务场景互联网后端、电商、支付、进销存、银行系统均属于这类。2负载特征读写占比读写混合写入请求频繁事务特点事务短小执行毫秒级、并发极高、大量随机 IO必须严格满足 ACID 事务特性访问模式绝大多数操作都是单行 / 少量行增删改查比如下单、扣库存、查用户余额极少大批量扫描整张表性能关注点事务吞吐 TPS、锁竞争、响应延迟、并发控制、行级锁效率。3典型业务电商下单、微信聊天消息、银行卡转账、外卖订单、用户账号系统4优缺点优点响应速度快能支撑高并发交易适配实时业务场景操作逻辑简单易于实现和维护。缺点不适合大规模统计分析若用于OLAP场景会产生大量无效I/O查询效率极低。2.OLAP在线分析处理1核心定义面向海量历史数据统计、多维报表、大数据分析、离线计算用于企业经营决策不处理在线实时交易。核心是处理“复杂分析”特点是操作耗时久、查询逻辑复杂需要扫描数据库的大部分数据用于从大量数据中提取有价值的信息。2负载特征读写占比几乎以大批量只读查询为主数据写入多是批量定时导入凌晨同步业务数据查询特点SQL 语句复杂多表关联、聚合计算sum/count/avg、全表大范围扫描查询耗时秒分钟级无事务要求不需要强 ACID更看重海量数据下的聚合计算速度存储特点数据体量极大TB/PB 级数据极少修改一次写入多次读取按时间分区存储。3典型业务电商月度销售额报表、用户行为画像、财务年度对账、网站流量大盘统计4优缺点优点分析能力强能高效处理大规模数据的聚合、统计查询支撑企业决策读取大量数据时的I/O效率高于OLTP适配的存储方式。缺点单行查询点查询速度慢写入操作繁琐、效率低无法支撑实时交易场景。3.HTAP混合事务分析处理1核心定义一套数据库同时承载 OLTP 在线事务 OLAP 数据分析 两种负载打破传统 TP 和 AP 必须两套系统分开部署的架构。2负载特征同一套集群白天承接线上用户下单、查询等实时事务TP 负载同时可直接基于最新业务数据做实时统计分析AP 负载无需提前把数据同步到数仓底层存储一般采用行列混合存储行存满足单行随机读写列存满足批量聚合查询兼顾事务 ACID 和海量数据分析性能资源隔离避免分析大 SQL 拖垮在线业务。3典型业务实时大屏、新零售实时库存分析、金融实时风控、实时营销推荐4.三大负载核心对比表二.三大核心存储模型当下所有数据库底层存储架构归根结底分为行存储、列存储、行列混合存储三类分别对应 OLTP、OLAP、HTAP 三大业务负载二者是一一匹配关系。1.行存储1存储规则把一整行的所有字段数据连续存放在磁盘相邻位置一行数据作为最小存储单元。2核心优缺点优势单行读写极快查询一整条用户所有信息、插入 / 更新单条数据只需一次磁盘 IO效率极高事务友好支持行级锁、频繁增删改完美适配事务场景适配随机读写数据频繁修改场景。劣势聚合统计极慢比如只算所有人平均年龄依然要把每行全部字段读取出来大量无效 IO压缩率低每行字段类型混杂压缩空间有限。3适用场景适配OLTP 在线事务业务电商订单、用户系统、支付2.列存储1存储规则将同一个字段的全部数据连续集中存放以字段列为最小存储单元。2核心优缺点优势大数据量聚合查询碾压行存统计平均年龄只需要读取 age 一列不用加载其他无关字段IO 开销大幅降低压缩效率极高同一列数据类型完全一致比如 age 全是数字可做到极致压缩节省磁盘空间海量历史数据只读场景性能拉满。劣势单行查询、频繁更新极慢修改一条用户数据需要去每一列分别修改IO 开销巨大不适合频繁写入、随机修改事务支持薄弱。3适用场景适配OLAP 数据分析、数据仓库报表统计、流量分析、用户画像3.行列混合存储1存储规则一套数据库底层同时具备行存储 列存储两套引擎数据可双副本保存热点最新数据用行存存放承接线上实时事务读写历史冷数据自动转为列存存放用于实时数据分析两种存储格式无缝切换、数据实时互通。2核心优缺点优势一套集群同时支撑 OLTPOLAP也就是 HTAP 混合负载在线下单业务不卡顿同时可以基于最新数据做实时大屏、风控分析冷热数据分层兼顾读写延迟与存储成本。劣势架构复杂底层实现难度大数据库研发成本高。3适用场景适配HTAP 混合业务实时风控、新零售实时库存、业务实时大盘4.三大存储模型对比表三.数据库数据压缩技术1.压缩核心价值节省磁盘存储空间列式存储压缩率可达 5~20 倍行存一般 2~4 倍大幅降低硬件成本减少磁盘 IO 开销磁盘读写的数据量变小查询、扫描速度提升网络传输更快数据备份、主从同步、节点间数据迁移流量降低代价CPU 算力消耗增加属于 CPU 换 IO 的取舍。2.压缩粒度四种级别1 Block-level 块级压缩页面级压缩把同一个表内连续一整块磁盘数据数据块 / 数据页作为整体压缩单元一个 Block 里包含几十上百条行记录tuples是行存数据库最主流的压缩方式。核心特点压缩粒度适中一块内数据有冗余压缩效果均衡增删改友好修改某一行只需加载对应数据块解压整块、修改后重新压缩回块兼容事务、行锁OLTP 在线业务标配2Tuple-level 元组级 / 行级压缩tuple 数据库一行记录以单独一整行数据为最小压缩单元每行独立压缩、独立存储。核心特点粒度最细修改任意一行只需要解压、重压缩当前这一行互不影响其他行缺点极大单行数据字段混杂、数据量太小内部冗余极少压缩率最差每一行都要附带压缩头部信息额外存储开销高局限工业界主流数据库几乎不用仅老旧轻量嵌入式数据库会采用。3Attribute-level 属性级 / 字段级压缩attribute 字段 / 列针对单条行内的某一个或多个单独字段做压缩不是整行、整块压缩。核心特点按需压缩只压缩占用空间大的字段小字段不压缩兼顾读取速度与存储空间精准减负不会因为压缩小字段浪费 CPU 算力4Column-level 列级压缩DSM 列式存储专属把成千上万行里同一个字段的全部值聚拢在一起整体压缩。也就是把一整列海量数据作为压缩单元。核心特点压缩率天花板同一列数据类型完全一致、规律极强时间戳、枚举、数字可以叠加字典编码、RLE、差值编码预处理后再二次压缩OLAP 分析查询极速统计聚合只需要读取需要的列不用加载整行无关数据大幅减少磁盘 IO短板单行更新、插入性能极差频繁修改场景完全不适用

相关新闻