⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

🐬 MySQL 学习路线

68 个互动教程

MySQL 入门

了解MySQL数据库基础

MySQL CRUD 增删改查

INSERT/SELECT/UPDATE/DELETE 完整操作

MySQL WHERE 条件筛选

比较/逻辑/IN/BETWEEN/LIKE/IS NULL 全面掌握

MySQL 排序与分页

ORDER BY/LIMIT/OFFSET 控制结果输出

MySQL 常用函数

COUNT/SUM/AVG/CONCAT/DATE_FORMAT

MySQL JOIN 多表查询

INNER/LEFT/RIGHT JOIN 关联多张表

MySQL 子查询

学习MySQL中MySQL 子查询 — MySQL教程的详细用法和最佳实践

MySQL JOIN详解

学习MySQL中MySQL JOIN详解 — MySQL教程的详细用法和最佳实践

MySQL 存储过程

CREATE PROCEDURE 封装业务逻辑

MySQL 触发器

学习MySQL中MySQL 触发器 — MySQL教程的详细用法和最佳实践

MySQL 数据类型选择指南

MySQL常用数据类型:INT/BIGINT整型、DECIMAL精确小数、VARCHAR变长字符串、TEXT长文本、DATE/DATETIME/TIMESTAMP时间、ENUM枚举。数据类型选择对性能和存储的影响

MySQL JSON 数据类型

MySQL JSON列:JSON_EXTRACT提取、JSON_CONTAINS检查、JSON_ARRAY/JSON_OBJECT构造、虚拟列+索引优化JSON查询、vs MongoDB对比场景

MySQL 全文索引与搜索

MySQL全文索引:FULLTEXT索引、MATCH...AGAINST搜索(自然语言/布尔模式/查询扩展)、ngram分词器(中文/日文)、与Elasticsearch对比

MySQL 锁机制

MySQL锁:表锁Table Lock(READ/WRITE)、行锁Row Lock(共享锁S/排他锁X)、间隙锁Gap Lock、死锁检测与处理、SELECT ... FOR UPDATE/SHARE、乐观锁vs悲观锁

MySQL 备份与恢复

MySQL备份恢复:mysqldump逻辑备份(--single-transaction/--routines/--triggers)、xtrabackup物理热备份、Point-in-Time Recovery时间点恢复(binlog)、备份策略(全量+增量)

MySQL Performance Schema 诊断

Performance Schema:性能监控表(events_statements_summary_by_digest)、sys Schema简化查询、查询Top SQL最慢语句、未使用索引、锁等待分析、内存使用监控

MySQL 高可用架构

MySQL高可用:MHA(Master High Availability)、MySQL Group Replication(多主/单主模式)、InnoDB Cluster(MySQL Shell+Group Replication+MySQL Router)、Orchestrator可视化拓扑管理

MySQL 正则表达式函数

MySQL正则:REGEXP/RLIKE正则匹配、REGEXP_LIKE/REGEXP_INSTR/REGEXP_SUBSTR/REGEXP_REPLACE(MYSQL 8.0+)、常用正则模式(邮箱/手机号/URL/中文)、与LIKE/全文索引对比

MySQL 查询缓存替代方案

MySQL 8.0移除查询缓存(Query Cache):删除原因(多核扩展差/全局锁竞争严重/失效频繁)、替代方案(应用层Redis缓存/ProxySQL query cache/读写分离降低主库压力/物化视图)

MySQL GIS 地理空间

MySQL空间数据GIS:Geometry/Point/Linestring/Polygon/Multi*空间数据类型、ST_Contains/ST_Distance/ST_Within/ST_Intersects空间关系函数、SPATIAL INDEX空间索引(R-Tree)、GeoJSON导入导出ST_AsGeoJSON/ST_GeomFromGeoJSON

MySQL EXPLAIN 执行计划详解

学习使用EXPLAIN分析SQL查询的执行计划,优化性能瓶颈。

MySQL InnoDB 死锁排查

MySQL InnoDB死锁排查实战:SHOW ENGINE INNODB STATUS查看LATEST DETECTED DEADLOCK、Information Schema INNODB_TRX/INNODB_LOCKS/INNODB_LOCK_WAITS实时锁信息、死锁日志解读(事务1持有锁等待/事务2等待→形成循环依赖)、应用层重试死锁事务、死锁预防(保持锁顺序一致/缩短事务/适当降低隔

MySQL 查询缓存机制

了解MySQL查询缓存的工作原理、配置及在8.0版本中的移除。

MySQL 存储过程入门

MySQL存储过程:CREATE PROCEDURE定义、IN/OUT/INOUT参数、DECLARE声明变量、IF/WHILE控制流、CURSOR游标遍历、调用CALL、优缺点分析

MySQL 分区表实践

学习使用RANGE、LIST、HASH等分区类型管理大表数据。

MySQL 视图与临时表

MySQL视图(VIEW):创建/替换/删除、可更新视图限制、物化视图(用定时任务模拟)、临时表(TEMPORARY TABLE/会话级别)、CTE公用表表达式WITH

MySQL 主从复制配置

掌握搭建MySQL主从复制的基本步骤与常见问题。

MySQL 慢查询日志分析与优化

学会启用慢查询日志并分析低效SQL,提升数据库性能。

MySQL 事件调度器 Event Scheduler

MySQL事件调度器:CREATE EVENT定时任务、ON SCHEDULE AT/EVERY、定期清理过期数据/生成报表、SHOW EVENTS查看、event_scheduler全局变量开关

MySQL 字符集与排序规则

理解字符集和排序规则的概念及其对数据存储和查询的影响。

MySQL 全文索引与搜索

使用全文索引实现高效的中英文模糊搜索。

MySQL JSON 数据类型操作

学习在MySQL中存储和查询JSON数据,使用JSON函数。

MySQL 窗口函数进阶

使用窗口函数实现排名、移动平均和分组内计算。

MySQL 公用表表达式(CTE)

使用WITH子句编写更清晰的递归和非递归查询。

MySQL 字符集与排序规则

深入理解MySQL字符集和排序规则,避免乱码问题,确保数据正确存储和比较。

MySQL 字符集与排序规则

理解字符集和排序规则的概念,掌握配置和转换方法。

MySQL分区表实战

掌握MySQL分区表的创建、管理与查询优化技术。

MySQL主从复制配置指南

学习配置MySQL主从复制实现数据备份与读写分离。

伪列与流水线变换:在查询中动态生成计算列

讲解如何利用 MySQL 的伪列(如 ROW_NUMBER、RANK)与用户变量结合,在单条 SELECT 语句中实现多步骤流水线式的列变换,避免子查询嵌套和临时表。

DDL 驱动的数据版本控制:用事件触发器实现自动历史归档

讲解如何利用 MySQL 事件调度器(EVENT)和触发器(TRIGGER)组合,在表结构变更(DDL)时自动创建历史版本快照,实现轻量级的数据版本管理。

复合索引的 B+ 树形态:从键值排列理解最左前缀的物理本质

深入 MySQL InnoDB 的 B+ 树结构在复合索引中的实际排列方式,通过 SHOW INDEX 和虚拟页模拟,直观解释为什么跳过中间列会导致索引失效。

JSON_TABLE 反嵌套:将 JSON 数组映射为关系行的多种模式

讲解 MySQL 8.0 JSON_TABLE 函数的高级用法,包括嵌套路径、横向迭代和条件过滤,将复杂 JSON 文档高效转为标准化行记录,替代传统应用层解析。

无锁计数器:利用 LAST_INSERT_ID 规避行锁争用

讲解在高并发场景下,如何利用 MySQL 的 LAST_INSERT_ID() 函数与自增列特性,实现无锁且精确的计数操作,避免 UPDATE 行锁导致的性能瓶颈。

元数据锁死锁诊断:从 performance_schema 追踪 DDL 与事务冲突

深入 MySQL 元数据锁(MDL)机制,通过 performance_schema.metadata_locks 表和 sys.schema_unused_indexes 视图,准确诊断 DDL 操作因长事务阻塞的根源。

生成列索引优化:将表达式计算下推到存储层

讲解 MySQL 生成列(VIRTUAL / STORED)的使用场景与性能差异,重点展示如何对 JSON 字段中的数值或日期表达式建立虚拟索引,让查询走索引而不必计算。

HyperLogLog 算法近似去重:在 MySQL 中实现极速 COUNT(DISTINCT)

介绍 HyperLogLog(HLL)原理,以及如何通过 MySQL 存储过程或用户定义函数(UDF)模拟 HLL,在牺牲极小精度(~2%)的前提下,将大规模去重计数速度提升百倍。

递归 CTE 树形聚合:逐层汇总并保留层级路径

讲解在组织架构或分类树中,利用 MySQL 递归 CTE 实现自底向上或自顶向下的层级汇总,同时使用 GROUP_CONCAT 构建完整路径标识,超越传统 parent_id 遍历。

透明数据加密列:用生成列实现应用层不可逆哈希

讲解如何在 MySQL 中利用生成列(GENERATED ALWAYS AS)和内置哈希函数,自动将敏感字段(如身份证号)转换为不可逆的哈希值存储,同时保留原始列用于合规审计触发。

用触发器模拟外键约束的三种模式

深入探讨MySQL中如何使用BEFORE INSERT/UPDATE/DELETE触发器实现RESTRICT、CASCADE、SET NULL三种外键行为,适合无法使用InnoDB外键的场景。

JSON_TABLE与聚合函数的动态行转列

利用MySQL 8.0+的JSON_TABLE函数将JSON数组展开为关系表,结合GROUP_CONCAT或SUM实现动态列聚合,替代传统PIVOT。

隐式提交陷阱:哪些语句会打断事务?

列举MySQL中所有导致隐式提交的DDL/DCL语句(ALTER、CREATE、DROP、TRUNCATE、GRANT等),并演示事务回滚失效的后果。

虚拟生成列上的二级索引优化查询

利用MySQL虚拟生成列(VIRTUAL GENERATED COLUMN)在不增加存储空间的情况下创建索引,优化JSON字段或表达式查询。

组复制单主模式下的冲突检测机制

深入MySQL Group Replication单主模式,解析基于行级快照的冲突检测(certification)如何利用gtid和write set避免死锁。

多源复制中的细粒度过滤:只同步特定库表

MySQL 5.7+多源复制中,利用CHANGE MASTER的FILTER选项实现不同主库同步到从库的不同数据库,过滤特定表或忽略事件类型。

用优化器提示强制改变表连接顺序

当MySQL优化器选择错误的多表连接顺序时,使用STRAIGHT_JOIN或JOIN_FIXED_ORDER等优化器提示强制指定驱动表和连接顺序。

RANGE vs ROWS:窗口帧行为差异深度测试

分析MySQL窗口函数中RANGE和ROWS两种帧定义的边界处理差异,尤其在使用ORDER BY非唯一列时的范围计算逻辑。

用UDF调用外部HTTP API扩展MySQL能力

在MySQL中通过自定义用户定义函数(UDF)调用外部REST API,实现无中间件的数据同步或通知,以lib_mysqludf_sys和curl为例。

MEMORY引擎与RocksDB:内存表的不同持久化策略

对比MySQL MEMORY引擎(全内存,重启丢失)和MyRocks(RocksDB引擎,压缩持久化)在临时表、高速缓存场景下的选型。

横向派生表:在FROM子句中引用同层级列

讲解MySQL 8.0+中的LATERAL派生表,允许子查询引用前面表的列,实现逐行计算与过滤。

JSON_TABLE() 路径表达式:将嵌套数组转为关系表

深入讲解JSON_TABLE函数中的NESTED PATH与ORDINALITY,处理多层JSON数组到规范化行集的转换。

窗口框架排除子句:FRAME_EXCLUSION控制行可见性

MySQL 8.0支持EXCLUDE CURRENT ROW/GROUP/TIES等框架排除,用于精确计算滑动窗口中的聚合范围。

函数索引与生成列:利用虚拟列加速查询

利用GENERATED COLUMNS(VIRTUAL/STORED)配合索引,实现对函数表达式或JSON字段的高效检索,绕过无法直接索引的问题。

递归CTE与有向图:检测环路与可达性

用递归公用表表达式(CTE)实现有向图中的环路检测(基于深度优先搜索的访问标记)和所有可达节点枚举。

撤销表空间:单独管理与回收UNDO日志

详解MySQL 8.0中undo表空间的分离配置、自动截断机制及如何监控undo膨胀,避免长事务导致磁盘爆满。

哈希连接内部机制:Block Nested Loop vs Hash Join

对比MySQL 8.0的Hash Join与BNL算法,理解join buffer、on-disk hash与内存控制参数(join_buffer_size、hash_join)。

优化器提示进阶:SET_VAR与查询块控制

利用SET_VAR提示在单条SQL中临时修改会话变量,配合QB_NAME控制嵌套查询的优化行为。

组复制一致性级别:AFTER与BEFORE对比

MySQL Group Replication中事务一致性保证:AFTER(最终一致)与BEFORE(强一致读写)的区别、配置及对性能的影响。

sys schema深度诊断:session与io延迟分析

利用MySQL sys schema中的session视图、io_by_thread_by_latency、schema_tables_with_full_table_scans等定位性能瓶颈。

🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 68 篇
0 完成
🔥 0