本文内容截取自《阿里云技术面试红宝书》,内附阿里云技术面试官面试真题和题解,助你拿下Offer!
阿里云数据库产品事业部- 招聘面试题 :
面试题 1(难度:中等):
如何设计一个红包系统来满足春节期间千亿级红包的收发问题?
本题为开放性问题,无标准答案,主要可以从以下几个不同的点对不同背景的面试人员进行考察:
-
业务:面试人员是否对抢红包的业务场景的需求有足够的了解,如果没有的话,是否有足够的沟通能力从面试官那里获取需要满足的业务场景的信息(比如金额方面不能有任何差错;比如对于并发量的要求等等)
-
底层存储:需要存哪些数据?用什么样的存储系统 / 数据库来落盘数据?数据存储的格式是怎么样的?数据库的 schema 怎么设计?底层存储如何拆分、如何架构导致其可以处理高并发请求?
-
缓存:缓存应该如何设计来提高系统的性能?如果使用分布式缓存?
-
同步 v.s. 异步:所有的操作都需要同步执行吗?有没有操作可以异步执行来减少对于用户的响应延迟?如果有的话怎么实现异步操作(比如消息队列)。
-
高可用:上述列出的组件之一如果宕机了怎么办?缓存被击穿了怎么办?怎么保证系统的高可用?系统怎么 failover?
-
测试与部署:如何压测整个系统?系统如何灰度?如何上线?
面试题 2:如何选择最优索引?
有如下表: create table t(a int, b int, c int);
已知如下三条是这个表最常用的三条 query:
select * from t where a = 1 and b = 1;
select * from t where b = 1;
select * from t where b = 1 order by c desc;
以下索引哪个是最优的:
A. idx(a, b)
B. idx(b, a)
C. idx(b, c)
D. idx(a, b, c)
答案是 B
面试题 3:举一个数据库快照读的实现方案
参考答案:本题考察候选人对于基于时间戳的常见快照读的实现和一般 MVCC 机制的理解
面试题 4:B+ 树和 B 树的区别有哪些?
参考答案:本题考察候选人对数据库中经典数据结构的细节掌握度,以及常见的数据库扫描方法的理解程度。
更多阿里云技术真题及招聘岗位,详见《阿里云技术面试红宝书》