返回信息流很多同学并不是数据库的专家,面试如果问到数据库并没有太多信心,面试数据库是有窍门的,因为数据库是一个庞大的系统,面试的时候没有办法考得很深,而且有一些题目是被反复问到的,大家可以提前准备。在这里我只提供答题思路,一来可以避免大家在面试的时候答案比较雷同,二来可以通过准备答案的过程学习些数据库的知识。
回答数据库的问题,需要有一定的高度,因为数据库是一个整体,牵一发而动全身,因此任何一个小的知识点都会牵动着很多相关的知识,回答问题的时候,需要站在一个高度上去分析,并把相关的内容以及联系都讲清楚,最重要的是要展现你的答题思路以及开放性的思维。
1. 数据库如何避免死锁
首先从数据库避免死锁的一般方法谈起,然后分别说明各种方法的应用场景以及在不同应用场景下锁的类型,并举例在什么时候应用并说明原因,还要说明不同机制在什么情况下可能发生死锁,最后提出改进意见。
2. 脏读和幻象问题
这个是个事务的问题,这个时候首先简单说一下为什么会发生以及解决方案,然后说明MVCC的简单的实现原理,可以对数据锁定进行展开讲一些内容,可以讲一下undo和redo在的应用以及XA事务的实现原理
3. 举一个优化的例子
这是一个开放式的问题,可以很好的按照你的思路去走,当然这个需要大家自己准备。但是例子需要简单,并且需要从理论上可验证,并且可监控,能够推到出一个结论,然后比较实际与理论的不同以及除了已经分析的内容,还有什么其他的影响因素。
4. Left outer join
这个只是一个考基础理论的题目,但是这里面还有一些可以拓展的内容,比如在什么情况 Left outer join 可以转化为 inner join, Left outer join 与 Union all 的比较,以及谓词在ON以及WHERE中的异同,以及 Left outer join 会如何影响查询计划等等。
5. Cluster index 以及 non-cluster index 的异同
首先要要知道 cluster index 的优势在什么地方,通常来说,通过 cluster index 的访问会快一些,解释一下原因,并说明在什么情况下,Cluster index 的访问不据优势。借此说明一些数据库 buffer pool 的原理并说明一些 index management 的一些优化的地方,比如 defer merge, prefetch 以及 index look aside 等等。
这是一条镜像帖。来源:北邮人论坛 / database / #6983同步于 2012/7/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
如何应对面试中的数据库问题
Robberking
2012/7/16镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
有不懂的地方可以讨论一下,这些问题就是帮助大家在面试的时候把数据库由劣势变优势。希望大家在面试的时候,数据库可以成为大家的亮点。
【 在 emperor 的大作中提到: 】
: 话说这5个我一个都不太懂~~~
我觉得这些问题在校期间应该都接触不到。。
【 在 Robberking 的大作中提到: 】
: 有不懂的地方可以讨论一下,这些问题就是帮助大家在面试的时候把数据库由劣势变优势。希望大家在面试的时候,数据库可以成为大家的亮点。
:
这些问题,本科生的教材 《数据库系统概念》 那本书里面是有介绍的,如果是研究生的话,可以结合做过的实例深入谈这些内容。
【 在 emperor 的大作中提到: 】
: 我觉得这些问题在校期间应该都接触不到。。
噢~!~领教了。。
【 在 Robberking 的大作中提到: 】
: 这些问题,本科生的教材 《数据库系统概念》 那本书里面是有介绍的,如果是研究生的话,可以结合做过的实例深入谈这些内容。
:
面试的时候 还真挺怕问到数据库相关的问题的 积累的太少
【 在 Robberking (Kinh) 的大作中提到: 】
: 很多同学并不是数据库的专家,面试如果问到数据库并没有太多信心,面试数据库是有窍门的,因为数据库是一个庞大的系统,面试的时候没有办法考得很深,而且有一些题目是被反复问到的,大家可以提前准备。在这里我只提供答题思路,一来可以避免大家在面试的时候答案比较雷
: 回答数据库的问题,需要有一定的高度,因为数据库是一个整体,牵一发而动全身,因此任何一个小的知识点都会牵动着很多相关的知识,回答问题的时候,需要站在一个高度上去分析,并把相关的内容以及联系都讲清楚,最重要的是要展现你的答题思路以及开放性的思维。
: 1. 数据库如何避免死锁
: ...................