携程面试:100 亿分库分表 如何设计? 核弹级 16字真经, 让面试官彻底 “沦陷”,当场发offer!

100亿分库分表设计的16字真经

本文的 原始地址 ,传送门

本文的 原始地址 ,传送门

说在前面

在45岁老架构师 尼恩的读者交流群(50+)中,最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格,遇到很多很重要的面试题::

  • 尼恩老师,面试官问我有一个订单表。有商品类别,订单id用户id,运营id,数据量上百亿这种情况,要有能对商品类别进行查询,运营查询他负责的跟单信息,按照订单号查询用户查询对应订单。要怎么去设计数据库的存储结构?
  • 100亿数据海量数据,如何进行存储架构?

最近有小伙伴在面试 携程,又遇到了相关的面试题。小伙伴懵了,因为没有遇到过,所以支支吾吾的说了几句,面试官不满意,面试挂了。

所以,尼恩给大家做一下系统化、体系化的梳理,使得大家内力猛增,可以充分展示一下大家雄厚的 “技术肌肉”,让面试官爱到 “不能自已、口水直流”,然后实现”offer直提”。

当然,这道面试题,以及参考答案,也会收入咱们的 《尼恩Java面试宝典PDF》V171版本,供后面的小伙伴参考,提升大家的 3高 架构、设计、开发水平。

最新《尼恩 架构笔记》《尼恩高并发三部曲》《尼恩Java面试宝典》的PDF,请关注本公众号【技术自由圈】获取,回复:领电子书

100亿数据海量数据 架构的16字设计原则 :

100亿数据海量数据 架构,尼恩给大家梳理一个 16字设计原则 :

  • 冷热分离‌:以访问频率驱动存储成本优化

  • 强弱解耦‌:以业务重要性划分一致性等级

  • 冗余双写‌:以查询需求驱动数据冗余

  • 延迟分级‌:以响应速度定义技术选型

面试过程中,可以 结合电商、金融等场景说明分层设计的具体落地方法。

这就是一个分库分表的 120分殿堂答案 (塔尖级):

第一个维度:冷热分离 理论架构

热-》温-》冷 : 冷热数据分离存储

根据访问频率定义冷热边界(如3个月未访问自动归档)

冷热数据的概念:热数据是频繁访问且时效性强的数据,温数据则是访问频率相对低数据,冷数据则是访问频率低且可能过期的数据。

热-》温-》冷 分离 基本知识要点:

  • 冷热数据分离的概念及其在数据存储中的重要性。
  • 热数据的特点:高访问频率、低延迟要求,适合存储在MySQL等关系型数据库中。
  • 冷数据A的特点:中等访问频率,适合存储在Elasticsearch(ES)中,支持秒级检索。
  • 冷数据B的特点:低访问频率,适合存储在HBASE等大数据分析平台中,支持批量分析。

数据生命周期管理‌:

  • 热数据(MySQL):高频实时读写(如订单支付状态)

  • 温数据 (ES):低频检索(如历史订单模糊查询)

  • 冷数据 (HBASE):离线分析(如年度交易统计)

存储选型逻辑‌:

不同存储介质的特点:如MySQL适合实时查询,ES适合秒级检索,HBASE适合批量分析。

  • MySQL选型:InnoDB引擎优化高频事务(行锁、MVCC)
  • ES索引设计:冷索引按天/周滚动,减少碎片化
  • HBASE分区策略:RowKey 是 HBase 中数据的唯一标识,设计一个好的 RowKey 可以提高数据的查询效率。

‌数据同步方案‌:

  • 热转冷:基于定时任务、或者 主从同步(如 Canal监听Binlog触发 同步)

架构设计的要点

  • 实际业务中,需要 根据数据访问频率和业务需求合理划分冷热数据。

  • 冷热数据存储方案 的设计与实现,需要 确保数据的高效访问与存储成本优化。

  • 各存储介质在数据迁移、查询性能等方面的关键技术点。

第一个维度:冷热分离 架构设计实操

百亿级订单表冷热分离存储设计方案(基于访问频率分层)

1. 冷热分层定义与边界划分
  • 热数据‌(实时访问层)

存储近3个月订单(日均访问量千万级),支持实时读写,响应时间≤50ms。

保留字段:订单ID、用户ID、运营ID、商品类别、支付状态、金额、时间戳等核心字段。

  • 温数据‌(近线检索层):

存储3~12个月订单(月均访问量百万级),支持秒级检索,响应时间≤500ms。

保留字段:订单ID、用户ID、运营ID、商品类别、评价内容、物流信息等分析字段。

  • 冷数据‌(离线分析层):

存储1年以上历史订单(年访问量十万级),支持分钟级批量查询,响应时间≤10s。

保留字段:全量数据(含业务扩展字段),用于审计、年度报表等场景。

冷热迁移规则‌:

  • 每日凌晨通过定时任务扫描热数据表,将超3个月数据迁移至ES(标记is_hot=0)
  • 每月初将ES中超9个月数据迁移至HBase(标记is_warm=0)

也可以通过 canal+ binlog ,异步 把数据 写入 近线检索层 + 离线分析层

2. 存储选型与容量规划
层级 存储引擎 容量预估 部署模
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值