MySQL教程 - jackssybin 的个人博客
MySQL教程
MySQL从新手到专家完整教程
系统学习 MySQL 安装配置、SQL 基础、索引优化、事务锁、日志备份、性能调优、主从高可用、监控诊断和实战面试。
MySQL从新手到专家完整学习路线图
入门导航
MySQL从新手到专家完整学习路线图 本教程旨在帮助你从零基础成长为MySQL专家,能够独立解决各种疑难问题 📚 学习路径总览 第一阶段:基础入门 (新手必学) 第01章:MySQL概述与安装 MySQL简介与版本选择 MySQL 5.7 在Windows上的安装 MySQL 5.7 在Linux上的安装 MySQL配置文件详解 常用客户端工具介绍 第02...
第01章:MySQL概述与安装
基础入门
第01章:MySQL概述与安装 1.1 MySQL简介 1.1.1 什么是MySQL MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是最流行的关系型数据库管理系统之一,在Web应用方面,MySQL是最好的应用软件之一。 1.1.2 MySQL的特点 开源免费:社区版完全免费 性能...
第02章:SQL基础 - DDL数据定义语言
基础入门
第02章:SQL基础 DDL数据定义语言 DDL (Data Definition Language) 用于定义和管理数据库对象 2.1 SQL语言分类 | 类型 | 全称 | 说明 | 主要语句 | ||||| | DDL | Data Definition Language | 数据定义语言 | CREATE、ALTER、DROP、TRUNCATE | ...
第03章:SQL基础 - DML数据操作语言
基础入门
第03章:SQL基础 DML数据操作语言 DML (Data Manipulation Language) 用于操作数据库中的数据 3.1 DML概述 DML主要包括三个语句: INSERT:插入数据 UPDATE:更新数据 DELETE:删除数据 3.2 INSERT 插入数据 3.2.1 基本语法 3.2.2 插入单行数据 准备测试表: 插入数据: 3....
第04章:SQL基础 - DQL数据查询语言
基础入门
第04章:SQL基础 DQL数据查询语言 DQL (Data Query Language) 是SQL中最常用的部分,用于从数据库中查询数据 4.1 DQL概述 DQL主要语句: SELECT:查询数据(最核心、最常用) SELECT语句的执行顺序: 4.2 SELECT基本查询 4.2.1 查询所有列 4.2.2 查询指定列 4.2.3 列别名 4.2.4...
第05章:SQL进阶查询
基础入门
第05章:SQL进阶查询 掌握多表连接、子查询、联合查询等高级查询技巧 5.1 多表连接概述 为什么需要多表连接? 数据库设计遵循范式,数据分散在多个表中 需要从多个表中组合数据进行查询 避免数据冗余,提高数据一致性 连接类型: INNER JOIN:内连接(最常用) LEFT JOIN:左外连接 RIGHT JOIN:右外连接 CROSS JOIN:交叉连...
第06章:索引原理与优化 ⭐⭐⭐⭐⭐
进阶提升
第06章:索引原理与优化 ⭐⭐⭐⭐⭐ 索引是MySQL性能优化的核心,必须深入理解 6.1 索引的概念 6.1.1 什么是索引 索引是一种数据结构,用于帮助MySQL高效地查找数据。 类比: 没有索引:像在字典中逐页查找一个单词(全表扫描) 有索引:像使用字典的目录快速定位(索引查找) 6.1.2 索引的优缺点 优点: ✅ 大大加快数据查询速度 ✅ 加速表与...
第07章:存储引擎深入理解
进阶提升
第07章:存储引擎深入理解 存储引擎是MySQL的核心组件,决定了数据的存储方式和性能特性 7.1 存储引擎概述 7.1.1 什么是存储引擎? 存储引擎(Storage Engine): MySQL的数据存储和管理机制 负责数据的存储、索引、事务等功能 不同的存储引擎有不同的特性和适用场景 MySQL的插件式存储引擎架构: 7.1.2 查看存储引擎 7.1....
第08章:事务与并发控制 ⭐⭐⭐⭐⭐
进阶提升
第08章:事务与并发控制 ⭐⭐⭐⭐⭐ 事务是数据库的核心特性,理解事务和MVCC是成为MySQL专家的必备知识 8.1 事务概述 8.1.1 什么是事务 事务(Transaction):一组SQL语句的集合,要么全部成功,要么全部失败。 经典案例:银行转账 如果步骤1成功,步骤2失败,会导致钱丢失!事务保证两个操作要么都成功,要么都失败。 8.2 ACID特...
第09章:锁机制 ⭐⭐⭐⭐⭐
进阶提升
第09章:锁机制 ⭐⭐⭐⭐⭐ 锁是数据库并发控制的核心机制,理解锁机制是成为MySQL专家的必备技能 9.1 锁概述 9.1.1 为什么需要锁 问题: 多个事务同时修改同一数据,会导致数据不一致。 示例: 解决方案: 使用锁机制,保证同一时间只有一个事务能修改数据。 9.1.2 锁的分类 按锁的粒度分类: 表锁(Table Lock):锁定整张表 行锁(Ro...
第10章:MySQL架构与执行流程
进阶提升
第10章:MySQL架构与执行流程 深入理解MySQL的整体架构和SQL执行流程,是成为MySQL专家的必经之路 10.1 MySQL整体架构 ⭐⭐⭐⭐⭐ 10.1.1 MySQL架构分层 10.1.2 各层功能详解 1. 连接层(Connection Layer) 客户端连接处理 用户认证和权限验证 连接池管理 线程管理 2. 服务层(SQL Layer)...
第11章:视图、存储过程与函数
进阶提升
第11章:视图、存储过程与函数 提高代码复用性和安全性的高级特性 11.1 视图(View)⭐⭐⭐⭐ 11.1.1 什么是视图? 定义: 虚拟表,基于SQL查询结果 不存储数据,只存储查询语句 简化复杂查询,提高安全性 示例: 11.1.2 视图操作 创建视图: 查看视图: 修改视图: 删除视图: 11.1.3 可更新视图 可更新视图条件: 不包含聚合函数 ...
第12章:触发器与事件
高级特性
第12章:触发器与事件 自动化数据库操作的利器 12.1 触发器(Trigger)⭐⭐⭐⭐ 12.1.1 什么是触发器? 定义: 在特定事件发生时自动执行的SQL语句 事件:INSERT、UPDATE、DELETE 时机:BEFORE、AFTER 语法: 12.1.2 触发器示例 BEFORE INSERT触发器: AFTER INSERT触发器: BEFO...
第13章:分区表
高级特性
第13章:分区表 提高大表查询性能的利器 13.1 分区表概述 13.1.1 什么是分区表? 定义: 将一个大表分成多个物理分区 逻辑上仍是一个表 提高查询性能和管理效率 优点: ✅ 提高查询性能(分区裁剪) ✅ 便于数据管理(删除旧分区) ✅ 提高并发性能 缺点: ❌ 增加复杂度 ❌ 某些查询可能变慢 13.2 分区类型 ⭐⭐⭐⭐ 13.2.1 RANGE...
第14章:字符集与排序规则
高级特性
第14章:字符集与排序规则 正确处理中文和emoji的关键 14.1 字符集概述 14.1.1 什么是字符集? 定义: 字符集(Character Set):字符的编码方式 排序规则(Collation):字符的比较规则 常用字符集: latin1:西欧字符(MySQL默认,已过时) gbk:简体中文 utf8:UTF8编码(最多3字节,不支持emoji)⚠...
第15章:MySQL日志系统 ⭐⭐⭐
备份与恢复
第15章:MySQL日志系统 ⭐⭐⭐ 本章是MySQL专家必须精通的核心内容,尤其是binlog机制 15.1 MySQL日志系统概述 MySQL有多种日志类型,每种日志都有其特定的用途: | 日志类型 | 作用 | 重要程度 | |||| | binlog(二进制日志) | 记录所有DDL和DML语句,用于复制和恢复 | ⭐⭐⭐⭐⭐ | | redo lo...
第16章:备份策略与实践
备份与恢复
第16章:备份策略与实践 数据备份是DBA最重要的工作之一,没有备份就没有安全感 16.1 备份的重要性 ⭐⭐⭐⭐⭐ 16.1.1 为什么需要备份? 常见的数据丢失场景: ❌ 硬件故障(磁盘损坏、服务器宕机) ❌ 人为误操作(误删数据、DROP TABLE) ❌ 软件Bug(应用程序错误) ❌ 恶意攻击(SQL注入、勒索病毒) ❌ 自然灾害(火灾、地震、水灾...
第17章:数据恢复实战
备份与恢复
第17章:数据恢复实战 数据恢复是DBA的核心技能,关键时刻能救命 17.1 数据恢复概述 17.1.1 常见的数据丢失场景 人为误操作(最常见): ❌ 误删数据:DELETE FROM users WHERE ... ❌ 误删表:DROP TABLE users ❌ 误删库:DROP DATABASE mydb ❌ 误更新:UPDATE users SET...
第18章:SQL优化实战 ⭐⭐⭐⭐⭐
性能优化
第18章:SQL优化实战 ⭐⭐⭐⭐⭐ 本章是MySQL性能优化的核心,必须精通EXPLAIN和各种SQL优化技巧 18.1 SQL优化的重要性 性能问题的根源: 80%的性能问题来自于SQL语句 一条慢SQL可能拖垮整个系统 SQL优化是成本最低、效果最好的优化手段 优化目标: 减少查询时间 降低CPU和内存消耗 减少磁盘I/O 提高并发能力 18.2 EX...
第19章:索引优化进阶
性能优化
第19章:索引优化进阶 索引优化是SQL优化的核心,90%的性能问题都与索引有关 19.1 索引优化原则回顾 19.1.1 索引的优缺点 优点: ✅ 加快查询速度(WHERE、ORDER BY、GROUP BY) ✅ 加快表连接速度 ✅ 减少排序和分组的时间 ✅ 唯一索引保证数据唯一性 缺点: ❌ 占用磁盘空间 ❌ 降低INSERT、UPDATE、DELET...
第20章:MySQL服务器优化
性能优化
第20章:MySQL服务器优化 合理的参数配置可以让MySQL性能提升数倍 20.1 MySQL配置文件 20.1.1 配置文件位置 20.1.2 配置文件结构 20.2 内存配置优化 ⭐⭐⭐⭐⭐ 20.2.1 InnoDB Buffer Pool 20.2.2 查询缓存(MySQL 5.7) 20.2.3 线程缓存 20.2.4 表缓存 20.2.5 排序...
第21章:硬件与操作系统优化
性能优化
第21章:硬件与操作系统优化 硬件是性能的基础,操作系统是性能的保障 21.1 硬件选型 21.1.1 CPU选择 CPU核心数: ✅ 多核心优于高频率 ✅ 推荐:8核心以上 ✅ MySQL可以利用多核心并行处理 CPU架构: ✅ x8664架构 ✅ Intel Xeon或AMD EPYC ✅ 支持AESNI(加密加速) 性能指标: 建议: 小型:4核心 中...
第22章:主从复制 ⭐⭐⭐⭐⭐
高可用架构
第22章:主从复制 ⭐⭐⭐⭐⭐ 主从复制是MySQL高可用架构的基础,是成为MySQL专家的必备技能 22.1 主从复制概述 22.1.1 什么是主从复制 主从复制(Replication):将主库(Master)的数据自动同步到从库(Slave)。 架构图: 22.1.2 主从复制的作用 1. 读写分离 主库:处理写操作(INSERT、UPDATE、DEL...
第23章:读写分离
高可用架构
第23章:读写分离 读写分离是提高MySQL并发能力的重要手段 23.1 读写分离概述 23.1.1 什么是读写分离? 定义: 写操作(INSERT、UPDATE、DELETE)→ 主库 读操作(SELECT)→ 从库 分散数据库压力,提高并发能力 架构图: 23.1.2 为什么需要读写分离? 问题场景: ❌ 读操作占比80%90% ❌ 单台数据库压力大 ❌...
第24章:高可用方案
高可用架构
第24章:高可用方案 高可用是保证业务连续性的关键 24.1 高可用概述 24.1.1 什么是高可用? 定义: High Availability(HA) 系统能够持续运行,减少停机时间 目标:99.9%、99.99%、99.999%可用性 可用性计算: 24.1.2 为什么需要高可用? 问题场景: ❌ 主库故障,业务中断 ❌ 硬件故障,数据丢失 ❌ 人为误...
第25章:分库分表
高可用架构
第25章:分库分表 分库分表是解决海量数据存储和高并发访问的核心方案 25.1 分库分表概述 25.1.1 为什么需要分库分表? 问题场景: ❌ 单表数据量过大(1000万) ❌ 查询慢,索引失效 ❌ 单库连接数不够 ❌ 单库I/O瓶颈 示例: 25.1.2 分库分表的优势 分表优势: ✅ 减小单表数据量 ✅ 提高查询性能 ✅ 减少锁竞争 ✅ 提高并发能力 ...
第26章:MySQL监控体系
监控与诊断
第26章:MySQL监控体系 监控是保障MySQL稳定运行的第一道防线 26.1 监控概述 26.1.1 为什么需要监控? 问题场景: ❌ 数据库突然变慢,不知道原因 ❌ 磁盘空间满了,业务中断 ❌ 主从延迟严重,数据不一致 ❌ 连接数耗尽,无法连接 监控的目标: ✅ 及时发现问题 ✅ 快速定位问题 ✅ 预防故障发生 ✅ 优化性能 26.1.2 监控指标分类...
第27章:性能诊断工具
监控与诊断
第27章:性能诊断工具 工欲善其事,必先利其器 27.1 诊断工具概述 27.1.1 为什么需要诊断工具? 问题场景: ❌ 查询突然变慢 ❌ CPU使用率100% ❌ 锁等待严重 ❌ 不知道问题在哪 诊断工具的作用: ✅ 快速定位问题 ✅ 分析性能瓶颈 ✅ 优化SQL ✅ 诊断锁问题 27.2 MySQL内置诊断工具 ⭐⭐⭐⭐⭐ 27.2.1 SHOW PR...
第28章:故障排查实战
监控与诊断
第28章:故障排查实战 实战是检验技术的唯一标准 28.1 故障排查概述 28.1.1 常见故障类型 性能故障: 查询慢 CPU使用率高 磁盘I/O高 内存不足 可用性故障: MySQL服务停止 无法连接 主从复制中断 数据损坏 数据故障: 数据丢失 数据不一致 误删除数据 28.2 查询慢故障排查 ⭐⭐⭐⭐⭐ 28.2.1 问题现象 28.2.2 排查步骤...
第29章:用户与权限管理
安全管理
第29章:用户与权限管理 数据库安全的第一道防线 29.1 用户管理 ⭐⭐⭐⭐⭐ 29.1.1 创建用户 基本语法: 29.1.2 查看用户 查看所有用户: 29.1.3 修改用户 修改密码: 修改用户名: 29.1.4 删除用户 删除用户: 29.2 权限管理 ⭐⭐⭐⭐⭐ 29.2.1 权限类型 常用权限: ALL PRIVILEGES:所有权限 SELE...
第30章:MySQL安全加固
安全管理
第30章:MySQL安全加固 构建安全的数据库环境 30.1 安全加固概述 30.1.1 安全威胁 常见威胁: SQL注入攻击 暴力破解 权限滥用 数据泄露 拒绝服务攻击(DoS) 30.2 账户安全 ⭐⭐⭐⭐⭐ 30.2.1 删除默认账户 删除匿名用户和测试数据库: 30.2.2 禁用root远程登录 只允许root本地登录: 30.2.3 强密码策略 配...
第31章:企业级实战案例
实战案例
第31章:企业级实战案例 从理论到实践的跨越 31.1 电商系统数据库设计 31.1.1 业务需求 系统规模: 用户:1000万+ 商品:100万+ 订单:1亿+ QPS:10000+ 31.1.2 数据库设计 用户表: 商品表: 订单表(分区): 订单详情表: 31.1.3 高并发秒杀设计 秒杀商品表: 秒杀订单表: 秒杀逻辑(乐观锁): 31.2 社交平...
第32章:MySQL面试题精选
实战案例
第32章:MySQL面试题精选 面试必备知识点汇总 32.1 基础知识 32.1.1 MySQL架构 Q1:MySQL的架构分为哪几层? Q2:InnoDB和MyISAM的区别? 32.2 索引相关 32.2.1 索引基础 Q3:什么是索引?有什么作用? Q4:MySQL索引使用什么数据结构?为什么? Q5:什么是聚簇索引和非聚簇索引? Q6:什么是覆盖索引...
第33章:疑难问题解决方案
实战案例
第33章:疑难问题解决方案 常见问题的终极解决方案 33.1 性能问题 33.1.1 查询突然变慢 问题现象: 排查步骤: 解决方案: 33.1.2 Buffer Pool命中率低 问题现象: 排查: 解决方案: 33.1.3 临时表过多 问题现象: 排查: 解决方案: 33.2 数据问题 33.2.1 主键冲突 问题现象: 原因: 解决方案: 33.2.2...