在业务数据量突破单机 MySQL 承载极限时,直接更换分布式数据库往往成本高昂且迁移风险大。这门课聚焦于 MyCAT 这一开源数据库中间件,旨在解决企业级应用中常见的单库性能瓶颈与高可用难题。它不是一般的 CRUD 教学,而是针对“如何在不改变业务代码底层逻辑的前提下,通过中间层实现分片与容灾”这一具体工程问题的拆解。对于需要维护老旧单体应用、或正在规划从单机向集群过渡的 Java 后端工程师而言,这是一套务实的架构落地指南。

定位与前置基础

这门课的核心价值在于填补“知道要分库分表”与“能独立搭建高可用集群”之间的鸿沟。它适合具备 2-3 年 Java 开发经验,熟练掌握 MySQL 增删改查、索引优化及主从复制原理的从业者。如果你还停留在只会写 `SELECT * FROM table` 的阶段,直接上手会非常吃力,建议先补齐 MySQL 事务隔离级别、锁机制等基础。课程不假设你熟悉分布式理论,而是从 MyCAT 的具体配置入手,逐步推导其背后的分片逻辑。它不适合前端或非后端岗位,也不适合追求最新云原生数据库(如 TiDB、OceanBase)的初学者,MyCAT 更多用于存量系统的平滑演进。

学习路径与核心模块

建议跳过冗长的概念介绍,重点关注第三至第五章的实战部分。首先精读第三章“核心配置详解”,重点理解 `server.xml` 与 `schema.xml` 的关联,尤其是 `dataHost` 和 `dataNode` 的映射关系,这是理解 MyCAT 如何将逻辑请求路由到物理节点的关键。接着深入第四章“垂直分库”实战,这里不仅讲代码,更讲业务模块的拆分策略,例如如何根据业务边界将用户表、订单表分离到不同物理库,以及在此过程中如何保证数据一致性。最后结合第五章(虽标题未完全展示,但依体系推断为水平分片或高可用集群搭建),掌握垂直与水平切分的组合拳。注意,课程中的“讨论题”并非形式主义,建议在本地环境复现后再作答,以检验对分片算法(如取模、哈希)实际效果的理解。

学完能做什么与练习建议

学完这门课,你应当具备独立搭建一套包含读写分离、垂直分库及水平分片的高可用数据库集群的能力。具体而言,你能针对一个中等规模的电商或订单系统,设计合理的分片键,配置 MyCAT 以实现自动路由,并处理常见的跨库 JOIN 问题或全局唯一 ID 生成。资料包中的配置模板应直接复制到本地 Linux 环境中修改,而非仅在虚拟机中运行。建议配合一个真实的 CRUD 项目,先跑通单机版,再逐步引入 MyCAT 进行分片改造,观察慢查询日志的变化。切记,中间件只是手段,对业务数据的深刻理解才是分片正确的根本。不要盲目堆砌节点,要根据实际 QPS 和数据增长速率进行评估,避免过度设计带来的维护灾难。

课程目录

第1章 课程介绍 试看 2 节 | 16分钟 1-1 MyCAT导学 (09:49).mp4
 1-2 课程介绍 (05:54).mp4
 第2章 MyCAT入门 7 节 | 43分钟 2-1 章节综述 (02:10).mp4
 2-2 什么是MyCAT (03:50).mp4
 2-3 什么是数据库中间层 (02:08).mp4
 2-4 MyCAT的主要作用 (15:19).mp4
 2-5 MyCAT基本元素 (06:04).mp4
 2-6 MyCAT安装 (13:02).mp4
 2-7 【讨论题】你了解MyCAT和MYSQL之间的关系吗.mp4
 第3章 MYCAT核心配置详解 

17 节 | 120分钟 3-1 章节综述 (02:10).mp4
 3-2 常用配置文件间的关系 (01:51).mp4
 3-3 server.xml配置详解 (26:13).mp4
 3-4 log4j2.xml配置文件 (07:52).mp4
 3-5 rule.xml文件详解 (08:50).mp4
 3-6 常用分片算法(上) (13:27).mp4
 3-7 常用分片算法(下) (18:49).mp4
 3-8 schema.xml文件用途 (03:54).mp4
 3-9 schema定义逻辑库 (05:42).mp4
 3-

10 table标签 (06:56).mp4
 3-

11 dataNode标签 (04:20).mp4
 3-

12 dataHost标签 (02:44).mp4
 3-

13 dataHost标签属性 (07:41).mp4
 3-

14 heartbeat标签 (01:49).mp4
 3-

15 writehost标签 (02:55).mp4
 3-

16 schema总结 (04:40).mp4
 3-17 【讨论题】垂直切分和水平切分有什么不同,解决业务数据哪些瓶颈.mp4
 第4章 MYCAT进阶实战之垂直分库 试看 

18 节 | 115分钟 4-1 为什么要进行垂直分库和相关步骤 (09:48).mp4
 4-2 收集分析业务模块 (03:07).mp4
 4-3 MySQL复制的步骤 (02:08).mp4
 4-4 MySQL复制环境说明 (01:58).mp4
 4-5 MySQL复制实战 (24:48).mp4
 4-6 MySQL复制总结 (02:42).mp4
 4-7 垂直切分 (01:44).mp4
 4-8 垂直切分相关配置 (13:57).mp4
 4-9 垂直切分schema文件配置 (07:28).mp4
 4-

10 垂直切分server文件配置 (04:41).mp4
 4-

11 后续工作 (05:50).mp4
 4-

12 MyCAT启动调试 (06:58).mp4
 4-

13 MyCAT验证配置 (05:10).mp4
 4-

14 清理多余数据 (06:33).mp4
 4-

15 跨分片查询 (04:35).mp4
 4-

16 配置和验证全局表 (06:41).mp4
 4-

17 垂直切分的优缺点 (06:11).mp4
 4-18 【讨论题】你是如何实现MyCAT集群中的全局唯一ID的.mp4
 第5章 MYCAT进阶实战之水平分库 

13 节 | 81分钟 5-1 水平分库和分片原则 (04:26).mp4
 5-2 分片后如何处理查询 (02:33).mp4
 5-3 水平分片步骤 (02:18).mp4
 5-4 如何选择分片键 (02:12).mp4
 5-5 分析业务模型 (03:50).mp4
 5-6 部署分片集群 (01:11).mp4
 5-7 演示环境说明 (01:00).mp4
 5-8 水平切分演示 (15:36).mp4
 5-9 全局自增ID (19:36).mp4
 5-

10 ER分片 (12:41).mp4
 5-

11 SQL拦截 (07:29).mp4
 5-

12 SQL防火墙 (07:57).mp4
 5-13 【讨论题】MyCAT分布式数据库集群建立后,如何加数据库节点.mp4
 第6章 MyCAT高可用集群 

13 节 | 66分钟 6-1 高可用的基本要求 (02:39).mp4
 6-2 当前架构离高可用还有多远 (02:18).mp4
 6-3 使用ZK记录MyCAT配置 (02:40).mp4
 6-4 部署ZK集群 (06:14).mp4
 6-5 初始化ZK并配置MyCAT支持ZK (08:34).mp4
 6-6 Haproxy部署详解 (17:35).mp4
 6-7 keepalived安装、配置、验证 (09:48).mp4
 6-8 MyCAT读写分离 (02:42).mp4
 6-9 MySQL主从配置 (04:29).mp4
 6-

10 schema.xml配置 (01:37).mp4
 6-

11 MyCAT读写分离配置 (05:22).mp4
 6-

12 高可用总结 (01:10).mp4
 6-13 【讨论题】如何对MyCAT集群中的数据库进行备份.mp4
 第7章 MyCAT管理及监控 3 节 | 32分钟 7-1 MyCAT管理概述 (02:55).mp4
 7-2 MyCAT命令行 (10:50).mp4
 7-3 MyCATWeb (17:36).mp4
 第8章 MyCAT集群优化 4 节 | 18分钟 8-1 MyCAT集群优化概述 (01:55).mp4
 8-2 Linux优化配置 (05:21).mp4
 8-3 MyCAT优化配置 (05:07).mp4
 8-4 MySQL优化配置 (04:48).mp4
 第9章 MyCAT的限制 1 节 | 10分钟 9-1 MyCAT限制 (09:27).mp4
 第10章 课程总结 1 节 | 2分钟 10-1 --课程总结 (01:24).mp4