大厂面试真题详解--拼多多分库分表问题

文章分享了拼多多面试中的数据库设计问题,讨论了应对高并发下订单存储的分库分表策略,包括水平拆分和垂直拆分的优缺点及适用场景,并提到了ShardingSphere和Mycat等分库分表解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.企业面试流程分享

投递简历最终入职,面试整个流程一般有以下几个步骤:

2.拼多多面试流程分享

1.拼多多分买家、卖家端,假设每天新增订单上百万,如何存储买家卖家的订单? 

 

 

拼多多面试真题:问题分析 

随着应用流量的增加,数据存储基本达到数据库的瓶颈,此时需要将数据分散存储,而分库分表是其中的解决方案之一。

拼多多面试真题:水平拆分

把同一个表的数据按一定规则拆到不同数据库表表结构均一致,仅数据存在差异

单库水平分表:按一定则拆分到同一个库不同表中,但不能解决写压力

多库水平分表:按一定规则拆分到不同库不同表中,常用此跨库跨表方案

水平拆分总结

适用场景

单表需记录百万/千万级别数据

优点

业务改造小

根本解决数据存储问题,提升系统稳定性和负载能力

缺点

需解决全局唯一ID问题

跨表查询性能差,必须接口聚合,提升开发复杂度

思考:水平拆分可以按时间段存储吗?(类似一天一个表)

答:不可以,单位时间范围内存储数据大小不固定,导致数据分散不均匀,影响整体性能

拼多多面试真题:垂直拆分

一个表按字段拆分成多表,每个表存储其中一部分字段 ( 订单 / 订单详情表 )
单库垂直分表:冷热分离,即高频字段一张表、低频字段一张表
多库垂直分表:存储在不同库的不同表,拆分到不同的数据库
垂直拆分小结
适用场景
表中某些列常用/ 某些列不常用
优点
降低业务表之间的耦合度,层次分明
一定程度上提升数据库资源的性能瓶颈
缺点
单表数据量大的问题没有根本解决
表结构的拆分对于业务代码改造影响大

思考:垂直拆分适用于什么应用场景

答:大型分布式系统,需要做读写分离的业务场景

拼多多面试真题:分库分表方案对比

拼多多面试真题:方案落地

ShardingSphere(前身ShardingJDBC)官网地址

重写jdbc原生的方法,实现数据库分片形式

Mycat:官网地址

基于Proxy复写了MySQL协议,将MyCatServer伪装成MySQL数据库

黑马程序员视频:【深入Sharding-JDBC分库分表从入门到精通分库分表】

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值