1101 字
约 3 分钟
10
S11-X01 · MySQL 八股速查
定位:附录索引。题 → 一句话答案 → 正文位置。
覆盖旧文:2318(2634) 1826(426) 2612(210) + 跨系列(S17 Cassandra/Neo4j、S21 向量库)= 3,595 点。
上一篇:S11-A03 · MySQL → ES / 缓存一致性
下一篇:S12 · Redis(下一系列)。
1. 架构与执行(B01)
| # | 问题 | 一句话答案 | 正文 |
|---|---|---|---|
| 1 | 一条 SQL 经过哪几层 | 连接→解析→优化→执行→引擎 | B01 §2 |
| 2 | binlog 属于哪层 | Server 层 | B01 §3 |
| 3 | 换引擎会影响什么 | 索引结构、锁行为 | B01 §3 |
| 4 | rows 是精确值吗 |
是估算 | B01 §4、J03 §3 |
2. 表与类型(B02/B04)
| # | 问题 | 一句话答案 | 正文 |
|---|---|---|---|
| 5 | char vs varchar |
定长 vs 变长(元数据同为 256 字节上限) | B02 §2 |
| 6 | 为什么用 utf8mb4 |
utf8 只有 3 字节,存不了 emoji |
B02 §3 |
| 7 | 金额用什么类型 | decimal |
B02 §4 |
| 8 | delete/truncate/drop |
行/重建表/删表 | B04 §1 |
| 9 | 谁重置自增 | truncate |
B04 §2 |
| 10 | delete 2 万行多久 |
848 ms(truncate 293 ms) |
B04 §1 |
3. 查询(B03)
| # | 问题 | 一句话答案 | 正文 |
|---|---|---|---|
| 11 | SQL 执行顺序 | FROM→WHERE→GROUP→HAVING→SELECT→ORDER→LIMIT | B03 §1 |
| 12 | WHERE 能用别名吗 |
不能 | B03 §1 |
| 13 | count(列) 与 count(*) |
前者不计 NULL | B03 §3 |
| 14 | UNION 与 UNION ALL |
前者去重 | B03 §6 |
| 15 | 深翻为什么慢 | offset 线性扫描(实测 54 vs 29 ms @2 万行) | B03 §5 |
4. 索引(B05/J01/J02/J03)
| # | 问题 | 一句话答案 | 正文 |
|---|---|---|---|
| 16 | 索引为什么是 B+ 树 | 范围查询 + 层数低 | B05 §1 |
| 17 | 聚簇 vs 二级索引 | 叶子存整行 vs 存主键 | B05 §1 |
| 18 | 什么是回表 | 二级索引拿到主键再查整行 | J01 §2 |
| 19 | 覆盖索引标志 | Extra: Using index |
J01 §1 |
| 20 | 最左前缀 | 联合索引必须从最左列开始用 | B05 §4 |
| 21 | 索引失效六因 | 函数/前导模糊/隐式转换/OR/跳列/低选择性 | J02 §3 |
| 22 | 函数导致 rows 变化(实测) | 250 → 20000 | J02 §2 |
| 23 | type 等级 |
const→eq_ref→ref→range→index→ALL | J03 §2 |
| 24 | Using filesort |
排序没走索引 | J03 §4 |
5. 事务与锁(B06/A01)
| # | 问题 | 一句话答案 | 正文 |
|---|---|---|---|
| 25 | 四个隔离级别 | RU / RC / RR(默认)/ Serializable | B06 §1 |
| 26 | RR 靠什么 | 读靠 MVCC,写靠锁 | B06 §2 |
| 27 | MVCC 依赖哪两列 | DB_TRX_ID、DB_ROLL_PTR |
B06 §3 |
| 28 | 快照读 vs 当前读 | 普通 select vs for update | B06 §3 |
| 29 | 自增为什么断续 | delete/回滚/批量预分配/唯一冲突 | A01 §3 |
| 30 | 死锁错误码 | ERROR 1213,检测器回滚一侧 |
A01 §4 |
| 31 | 不推荐外键的四理由 | 性能/分库/锁扩散/迁移 | A01 §5 |
6. 调优与恢复(J04/J05/A02/A03)
| # | 问题 | 一句话答案 | 正文 |
|---|---|---|---|
| 32 | 慢日志关键字段 | Query_time/Lock_time/Rows_examined |
J04 §2 |
| 33 | 三种日志的分工 | redo 恢复/undo 回滚/binlog 归档 | J05 §1 |
| 34 | 为什么 binlog 能做 PITR | 逻辑记录可重放 | J05 §2 |
| 35 | 误删怎么救 | binlog 反向解析 / 备份重放 | J05 §3 |
| 36 | 生产能用 Docker 跑 MySQL 吗 | 不建议(数据卷/IO/运维) | A02 §2 |
| 37 | 迁移三件套 | 向后兼容/可回滚/可观测 | A02 §4 |
| 38 | 三种同步方案 | 双写/binlog 订阅/对账 | A03 §1 |
| 39 | 缓存一致性根本解法 | 让失效由数据变更驱动(binlog) | A03 §4 |
7. 跨系列登记
| 卡 | 内容 | 去向 |
|---|---|---|
| A-624 | Cassandra 入门 | S17 |
| A-497 | Neo4j 图数据库 | S17 |
| A-1072 / A-1061 | 向量数据库选型 | S21 |
本篇属于系列《S11 · 数据库与 SQL》,是基础层附录。
S11-X01 · MySQL 八股速查
https://www.clxhxhhr.top/posts/5343/ 评论
0 条
还没有评论,先写一条吧。