> ## Documentation Index
> Fetch the complete documentation index at: https://docs.howen.ink/llms.txt
> Use this file to discover all available pages before exploring further.

# MySQL 教程：概述

> 学习目标、适用场景与学习路径概览

MySQL 是最流行的开源关系型数据库之一，具备高性能、低成本、生态完善等优势。本教程面向初学者与进阶工程师，覆盖从安装、基础 SQL 到事务、索引、备份恢复、性能优化与安全的完整路径。

<Info>
  示例命令与 SQL 语句保持英文原文（如 `mysql`, `mysqldump`），正文提供中文解释，方便复制粘贴。
</Info>

## 读者画像

* 需要为 Web/移动应用设计数据库的后端工程师
* 负责维护现有 MySQL 集群、希望提升可靠性与性能的运维/DBA
* 需要理解 SQL 行为、为数据分析或 BI 建模的数据工程师

<Note>
  即便之前接触过其他数据库（PostgreSQL、SQL Server 等），也可通过对比快速掌握 MySQL 的默认行为与差异点。
</Note>

## 前置知识与工具

* 熟悉基本命令行操作（Windows PowerShell 或 Unix shell）
* 了解 Git、包管理器或容器工具（Homebrew、apt、Docker 等）
* 对关系模型有初步概念：表、行、列、主键等

<CodeGroup>
  ```bash Windows theme={null}
  mysql --version
  ```

  ```bash macOS/Linux theme={null}
  which mysql && mysql --version
  ```
</CodeGroup>

## 如何使用本教程

<Steps>
  <Step title="安装与环境">
    选择你的平台完成安装，并创建独立的业务账号，确保每个练习都在隔离环境里进行。
  </Step>

  <Step title="SQL 基础">
    通过 `SELECT/INSERT/UPDATE/DELETE` 操作熟悉增删改查，并对数据类型和约束形成直觉。
  </Step>

  <Step title="表设计与索引">
    从范式化建模切入，结合 `EXPLAIN` 理解索引命中与执行计划。
  </Step>

  <Step title="进阶主题">
    事务、锁、备份与恢复、性能优化、安全权限等内容可按需选读，也可顺序深入。
  </Step>
</Steps>

<Tip>
  建议在本地或 Docker 中准备一个 `shop` 示例库，所有章节都围绕该数据集展开，可避免环境差异带来的偏差。
</Tip>

## 示例数据库

```sql theme={null}
CREATE DATABASE IF NOT EXISTS shop;
USE shop;

CREATE TABLE users (
  id BIGINT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(100) NOT NULL,
  email VARCHAR(255) NOT NULL UNIQUE,
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;

CREATE TABLE products (
  id BIGINT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(200) NOT NULL,
  price DECIMAL(10,2) NOT NULL,
  stock INT NOT NULL DEFAULT 0,
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  KEY idx_price (price)
) ENGINE=InnoDB;

CREATE TABLE orders (
  id BIGINT PRIMARY KEY AUTO_INCREMENT,
  user_id BIGINT NOT NULL,
  total DECIMAL(10,2) NOT NULL,
  status ENUM('CREATED','PAID','CANCELLED') NOT NULL,
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (user_id) REFERENCES users(id)
) ENGINE=InnoDB;

CREATE TABLE order_items (
  id BIGINT PRIMARY KEY AUTO_INCREMENT,
  order_id BIGINT NOT NULL,
  product_id BIGINT NOT NULL,
  quantity INT NOT NULL,
  price DECIMAL(10,2) NOT NULL,
  FOREIGN KEY (order_id) REFERENCES orders(id),
  FOREIGN KEY (product_id) REFERENCES products(id),
  KEY idx_order (order_id),
  KEY idx_product (product_id)
) ENGINE=InnoDB;
```

<Note>
  示例库遵循交易型系统常见模式：用户-订单-明细，后续章节会在此基础上拓展查询、事务与备份案例。
</Note>

## 学习路径

1. 安装与环境（/mysql/install）
2. SQL 基础（/mysql/basics）
3. 表设计与索引（/mysql/schema-index）
4. 连接与聚合（/mysql/joins-aggregation）
5. 事务与锁（/mysql/transactions-locks）
6. 备份与恢复（/mysql/backup-restore）
7. 性能优化（/mysql/performance）
8. 安全与权限（/mysql/security）
9. 故障排查（/mysql/troubleshooting）
10. 速查表（/mysql/cheatsheet）

## 推荐资料

* [MySQL 官方文档](https://dev.mysql.com/doc/refman/8.0/en/)：深入细节的最佳来源
* [Percona Blog](https://www.percona.com/blog/)：大量性能调优与生产经验分享
* [MySQL Shell](https://dev.mysql.com/doc/mysql-shell/8.0/en/)：现代化多功能客户端，支持 JS/Python 脚本化操作

<Warning>
  生产系统变更请先在测试环境演练，并准备回滚/备份方案，避免直接在线上实验教程中的命令。
</Warning>
