ohmyblog

#数据库

经典题解析:存储过程和触发器有什么区别,现在还该不该用

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。题面是「存储过程与触发器的区别」。一句话版本:存储过程是「等你显式调用」的一段库内逻辑,触发器是「表上一有动静就自己跑」的一段库内逻辑。但要答好,得把触发方式、语义能力和工程代价三层都讲开。

笔试真题复盘:SQL 的逻辑执行顺序是什么,left join 和 inner join 差在哪

先说明属性:这是一篇历史笔试题复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。这道题表面考两个知识点——SQL 逻辑执行顺序、left join 与 inner join 的差异——实际上考的是同一件事:你真的知道一条 SQL 是按什么流程算出结果的吗?

经典题解析:主键、超键、候选键、外键,一张表里有几种键

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。「一张表里有几种键」这道题考的不是背定义,而是四种键之间的包含关系——很多人能分别说出定义,却画不出它们谁套谁。

经典题解析:脏读、幻读、不可重复读,三个异常各长什么样

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。脏读、不可重复读、幻读这三个词几乎人人会背,但面试官真正想看的,是你能不能各写出一个复现过程——说不清「长什么样」的定义,等于没定义。

经典题解析:B+ 树索引一般有几层,能装多少行数据

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。面试官常问的是一句大白话:一张千万行的表,走索引查一行要读几次磁盘?这个问题背后是一道定量估算题——B+ 树到底有几层,每一层能放大多少倍。

从 MVCC 面试题延伸:数据库并发控制全景——锁、MVCC 与 OCC 怎么选

上一篇真题解析讲过隔离级别与 MVCC 快照读的实现,本文不再重复隔离级别细节,而是回答它的上游问题:数据库要管住并发事务,一共有几条技术路线,各自的适用负载是什么?看懂这个谱系,才能把 MVCC 放回它该在的位置。

经典题解析:数据库视图到底有什么用,能不能直接改

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。「视图的作用,视图可以更改么」是两连问:第一问考你知不知道它解决什么问题,第二问考你清不清楚它的边界。两个问题都答实了,才算会用视图。

经典题解析:数据库变慢了,优化思路按什么顺序展开

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。「数据库优化的思路」是开放题里的经典,也是区分「背过答案」和「干过活」的试金石:背答案的人会罗列手段,干过活的人会给顺序。

经典题解析:聚簇索引、覆盖索引、联合索引,索引的种类一张图理清

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。「索引的工作原理及种类」是 MySQL 面试的主干题,很多人能罗列一堆名词,但混在一起讲——其实它们分属两个坐标轴:一个讲数据怎么组织,一个讲索引怎么服务查询。

经典题解析:ACID 四个特性,到底各自保证什么

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。「事务的四个特性及含义」是数据库面试的必答题,人人会背 ACID 四个字母,但面试官想听的是:每个特性的语义边界画在哪里,背后靠什么机制兜底。