有报道指出,随着业务发展,MongoDB 中的核心业务流(如停车流水、订单日志等)会逐渐演变成几千万甚至数亿级别的超大集合。为了保障核心查询性能和控制存储成本,冷热数据分离成为了必经之路。 科技新闻。
根据不同的业务特征和基础架构能力,冷热分离有以下主流架构选型。
优势:
应对背景与起因
劣势:技术架构较复杂。
如果数据特征是机器指标、日志、事件流等持续写入且带时间戳的数据,强烈建议迁移到 MongoDB 原生的 Time Series 集合。
做法:
应对事件经过
故根据以上描述,建议使用定时任务微批处理数据。
如果目前受限于业务逻辑,只能采用最初的“查询 -> 插入 -> 删除”方案,请务必遵循以下平滑处理原则来写脚本:
大量删除会触发锁表或性能损失吗?
应对各方回应
如果冷热规则是严格按照“时间”划分的(比如只保留最近 3 个月的数据),不要去原表里删数据,而是直接按周期建表。
结论:不会“锁表”,但会带来严重的性能灾难。
MongoDB 默认使用 WiredTiger 存储引擎,采用的是文档级锁(行级锁),而不是表级锁。因此,删除操作本身不会阻塞整个集合的读写,但对于超大表的大规模删除,会带来以下致命的性能损失:,后续进展有待观察。
声明:本文信息来源于相关渠道或网络,版权归原作者所有。如涉及版权问题请及时与本站联系删除。本文观点仅供参考,不代表本站立场。