Skip to content

面试速答(先看这里)

**一句话结论:**分表前多少数据?

60秒标准回答:

26 届,双一流硕士, 2 段大厂实习( CICD 系统、资金结算系统)

资金结算实习四个月,干的最难的工作是什么?数据库稳定性治理,分库分表、解决数据倾斜问题

分表前多少数据? 1000 万、为啥要分, 300 万 / 月,参与实现了其中哪部分?

**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点

回答主线:

  • **要点1:**26 届,双一流硕士, 2 段大厂实习( CICD 系统、资金结算系统)
  • **要点2:**分库分表之后数据迁移怎么做的?
  • **要点3:**你做过的项目中,做过哪些比较好的设计模式吗?
  • **要点4:**AOP+ 自定义注解实现了啥功能?
  • **要点5:**如何统计一个 bean 的某个方法被调用多少次?

**记忆锚点:**CAS → JAVA → JUC → MySQL → trace → finally

易错提醒:

  • 如果方法执行过程失败了怎么办?

加分表达:

  • 如果是 char(10) 和 char(100) 呢?
  • 如果你trace发现你并不慢,但是上游就说你慢,怎么办?

追问准备:

  • 26 届,双一流硕士, 2 段大厂实习( CICD 系统、资金结算系统) 资金结算实习四个月,干的最难的工作是什么?
  • 数据库稳定性治理,分库分表、解决数据倾斜问题, 分表前多少数据?
  • 1000 万、为啥要分, 300 万 / 月,参与实现了其中哪部分?
  • 分表键和分表算法介绍下?

面试者背景 ​

> 26****届,双一流硕士,2段大厂实习(CICD系统、资金结算系统) > > 资金结算实习四个月,干的最难的工作是什么?数据库稳定性治理,分库分表、解决数据倾斜问题, > > 分表前多少数据?1000万、为啥要分,300万**/月,参与实现了其中哪部分? > > **分表键和分表算法介绍下?费用单,商户id**,分了多少张表?128表,16库?怎么定出来的。** > > 费用单的历史数据还有用吗?为啥不考虑归档或者搜索引擎。 > > 分表后主键是怎么生成的?号段模式**、你这个sequence数据的存储在哪个库哪张表?某个单库中。** > > 数据倾斜问题,大商户。有多少量?5万**/日,现在他有多少数据? > > 怎么解决的数据倾斜问题?二次分表。客商白名单、单独加时间二次分表。 > > 客商的数据查询怎么办?为啥不干脆直接按照时间分? > > 分库分表之后数据迁移怎么做的?读旧双写(双写是怎么实现的双写?先写哪个库?失败了咋办?)、存量数据迁移(怎么定义存量数据?根据时间、开增量双写的时间?) > > 你做过的项目中,做过哪些比较好的设计模式吗?多渠道资金打款>策略模式+模板+工厂,分别起到了什么作用?三种工厂模式有什么区别? > > **AOP+自定义注解实现了啥功能?日志处理。如何实现的AOP可以切到这个注解上?你这个直接里有参数吗?日志要打什么?** > > **如何统计一个bean的某个方法被调用多少次?如果方法执行过程失败了怎么办?** > > **finally的代码什么情况可能会不执行?守护线程了解么?JAVA中可以创建守护线程吗?** > > **JAVA中多个线程做同步,有哪些方案?加锁、JUC,JUC中都有啥?原子类、并发控制工具、锁、并发容器、线程池。CoW是啥意思?你用过原子类么?使用场景是啥?** > > **AQS中已经用了CAS**,为什么还需要CAS?volatile怎么保证的可见性。CAS本身不是基于CPU缓存一致性协议(MESI)做的吗,为啥还需要保证一致性?** > > Mysql 定义varchar(10)和varchar(100),同时存6个字符的时候,有区别么?存储无区别,排序有区别?排序上有啥区别? > > 如果是char(10)和char(100)呢?MySQL的深分页如何解决?子查询就没有深分页的问题了吗?用es。Es就没深分页了么?跳页咋办? > > MySQL的主从同步是怎么做的?为什么需要relay log****中转一下?binlog是拉的还是推的?什么情况可能会主从延迟? > > 线上一个接口响应时间不符合预期,如何排查和解决?trace **,比如说是慢SQL**可能是啥原因导致的。 > > 自己不慢,下游接口慢怎么办?异步? > > 如果你trace发现你并不慢,但是上游就说你慢,怎么办?

题目解析 ​

> 资金结算实习四个月,干的最难的工作是什么?数据库稳定性治理,分库分表、解决数据倾斜问题, > > 分表前多少数据?1000万、为啥要分,300万**/月,参与实现了其中哪部分? > > **分表键和分表算法介绍下?费用单,商户id**,分了多少张表?128表,16库?怎么定出来的。** > > 费用单的历史数据还有用吗?为啥不考虑归档或者搜索引擎。 > > 分表后主键是怎么生成的?号段模式**、你这个sequence数据的存储在哪个库哪张表?某个单库中。** > > 数据倾斜问题,大商户。有多少量?5万**/**日,现在他有多少数据? > > 怎么解决的数据倾斜问题?二次分表。客商白名单、单独加时间二次分表。 > > 客商的数据查询怎么办?为啥不干脆直接按照时间分? > > 分库分表之后数据迁移怎么做的?读旧双写(双写是怎么实现的双写?先写哪个库?失败了咋办?)、存量数据迁移(怎么定义存量数据?根据时间、开增量双写的时间?)

📄 ✅分表后全局ID如何生成?

打开文档:✅分表后全局ID如何生成?

📄 ✅什么是分库?分表?分库分表?

打开文档:✅什么是分库?分表?分库分表?

📄 ✅分表算法都有哪些?

打开文档:✅分表算法都有哪些?

📄 ✅如果单表数据量大,只能考虑分库分表吗?

打开文档:✅如果单表数据量大,只能考虑分库分表吗?

📄 ✅什么是数据倾斜,会带来哪些问题?如何解决?

打开文档:✅什么是数据倾斜,会带来哪些问题?如何解决?

📄 ✅分库分表中,如何预估需要分多少个库?多少张表?

打开文档:✅分库分表中,如何预估需要分多少个库?多少张表?

📄 ✅如何做平滑的数据迁移?

打开文档:✅如何做平滑的数据迁移?

> 你做过的项目中,做过哪些比较好的设计模式吗?多渠道资金打款**>策略模式+模板+**工厂,分别起到了什么作用?三种工厂模式有什么区别? > > AOP+自定义注解实现了啥功能?日志处理。如何实现的AOP可以切到这个注解上?你这个直接里有参数吗?日志要打什么? > > 如何统计一个bean的某个方法被调用多少次?如果方法执行过程失败了怎么办?

📄 ✅你在工作中是如何使用设计模式的?

打开文档:✅你在工作中是如何使用设计模式的?

📄 ✅使用自定义注解+切面减少冗余代码,提升代码的鲁棒性

打开文档:✅使用自定义注解+切面减少冗余代码,提升代码的鲁棒性

📄 ✅如何统计一个Bean中的方法调用次数

打开文档:✅如何统计一个Bean中的方法调用次数

> finally****的代码什么情况可能会不执行?守护线程了解么?JAVA中可以创建守护线程吗? > > JAVA****中多个线程做同步,有哪些方案?加锁、JUC,JUC中都有啥?原子类、并发控制工具、锁、并发容器、线程池。CoW是啥意思?你用过原子类么?使用场景是啥? > > AQS中已经用了CAS,为什么还需要CAS?volatile怎么保证的可见性。CAS本身不是基于CPU缓存一致性协议(MESI)做的吗,为啥还需要保证一致性?

📄 ✅finally中代码一定会执行吗?

打开文档:✅finally中代码一定会执行吗?

📄 ✅什么是守护线程,和普通线程有什么区别?

打开文档:✅什么是守护线程,和普通线程有什么区别?

📄 ✅介绍下JUC,都有哪些工具类?

打开文档:✅介绍下JUC,都有哪些工具类?

📄 ✅什么是COW,如何保证的线程安全?

打开文档:✅什么是COW,如何保证的线程安全?

📄 ✅如何理解AQS?

打开文档:✅如何理解AQS?

📄 ✅有了MESI为啥还需要JMM?

打开文档:✅有了MESI为啥还需要JMM?

📄 ✅有了CAS为啥还需要volatile?

打开文档:✅有了CAS为啥还需要volatile?

> Mysql 定义varchar(10)和varchar(100),同时存6个字符的时候,有区别么?存储无区别,排序有区别?排序上有啥区别? > > 如果是char(10)和char(100)呢?MySQL的深分页如何解决?子查询就没有深分页的问题了吗?用es。Es就没深分页了么?跳页咋办?

📄 ✅varchar(100)和varchar(10)有什么区别?

打开文档:✅varchar(100)和varchar(10)有什么区别?

📄 ✅MySQL的深度分页如何优化

打开文档:✅MySQL的深度分页如何优化

📄 ✅什么是ElasticSearch的深度分页问题?如何解决?

打开文档:✅什么是ElasticSearch的深度分页问题?如何解决?

> MySQL的主从同步是怎么做的?为什么需要relay log中转一下?binlog是拉的还是推的?什么情况可能会主从延迟?

📄 ✅MySQL主从复制的过程

打开文档:✅MySQL主从复制的过程

> 线上一个接口响应时间不符合预期,如何排查和解决?trace **,比如说是慢SQL**可能是啥原因导致的。 > > 自己不慢,下游接口慢怎么办?异步? > > 如果你trace发现你并不慢,但是上游就说你慢,怎么办?

📄 ✅如果一个接口响应时间不符合预期,怎么排查跟解决?

打开文档:✅如果一个接口响应时间不符合预期,怎么排查跟解决?

📄 ✅一次RPC请求,客户端显示超时,但是服务端不超时,可能是什么原因?

打开文档:✅一次RPC请求,客户端显示超时,但是服务端不超时,可能是什么原因?