Files

45 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: backend.mysql.index
title: MySQL
type: index
domain: backend
stack: [mysql]
tags: [数据库, SQL, MySQL, InnoDB]
week: [2, 14]
---
# MySQL
国内招聘里出现最多的关系数据库。本计划先用 [PostgreSQL](../postgresql/index.md) 学 SQL 和事务,再用这个专题补齐 MySQL(InnoDB)特有的知识:聚簇索引、EXPLAIN 读法、间隙锁、主从复制和分库分表——这些是面试高频题。
> 示例在 MariaDB 11.8 上验证过;MariaDB 与 MySQL 8 在 `EXPLAIN ANALYZE`、部分系统变量上有差异,文中已标注,以 MySQL 官方文档为准。
## 学习路线
| 顺序 | 课程 | 级别 | 预计 |
| --- | --- | --- | --- |
| 1 | [InnoDB 索引:B+ 树、聚簇索引、回表、最左前缀和 EXPLAIN](01-index-explain.md) | 基础 | 3 小时 |
| 2 | [事务、隔离级别、MVCC 和锁(行锁、间隙锁、死锁)](02-tx-locks-mvcc.md) | 进阶 | 4 小时 |
| 3 | [运维与扩展:慢查询、主从复制、读写分离、分库分表](03-ops-scale.md) | 进阶 | 3 小时 |
## 企业场景
- [大表深分页和历史数据:游标分页、延迟关联、归档](scenarios/deep-pagination.md)
## 面试题
- [MySQL 面试题](interview.md)
## 示例代码
- [examples/deep-pagination](examples/deep-pagination/):Python + PyMySQL 对比 `LIMIT offset` 和游标分页;设置 `MYSQL_URL` 后运行
## 在 16 周计划中
- [第 2 周:数据库 + 鉴权(MySQL 对照)](../../../plan/week02-db-auth.md)、[第 14 周:后端扩展](../../../plan/week14-backend-extend-deploy.md)
## 官方资料
- MySQL 8.4 参考手册:https://dev.mysql.com/doc/refman/8.4/en/
- InnoDB 锁:https://dev.mysql.com/doc/refman/8.4/en/innodb-locking.html