跳至主要內容

连环炮面试题


连环炮面试也叫递进式面试。在面试过程中,先从简单的问题开始,扣着同一个知识点层层递进,直到候选人答不上来才换知识点。这个面试方法考察候选人掌握知识的深度和广度,也要求面试官有广阔的知识面。常规的面试方法是问一个知识点,就切换到下一个知识点,这种做法很容易搞成面试八股文。

举个简单的例子,让我们看看连环炮面试如何进行:

面试官: 你们的项目为什么要分库分表?
候选人:随着业务的发展,公司项目的日活翻了几十倍,订单表Order每月新增数据100万左右,有部分场景查询效率不太高了。通过升级配置、业务规避、缓存集群、归档历史数据等手段,也能够满足当前的查询要求。但是业务是呈加速度增长的,未来的数据会更多。虽然深知过早优化的弊端,但是数据分片一定要做的,不可能等到崩了再做,于是决定分库分表。

面试官:分片策略是什么,为什么这样分?
候选人:以订单号为Key,分片规则是按订单日期分为年库月表。按这种规则分片,程序员的心智负担比较轻,大多数的订单查询条件都包含日期,这样分片可以减少查询模块的改动。

面试官:按日期分片数据分布不均匀,怎么解决?
候选人:数据分布不均匀,通过缓存查询结果来解决,避免某个库表过载。如果要均匀的话,按订单号取模分片就行了,但是未来迁移数据是个麻烦事。比如初期分12张表,后面要分成16张表,要写批处理程序把数据从旧表导入新表,成本很高。

上次编辑于: