• 第1章 数据库中间件与分布式数据库...
  • 1.1 什么是分布式系统 1
  • 1.2 为什么需要分布式数据库 2
  • 1.3 分布式数据库的实现原理 3
  • 1.4 Mycat 数据库中间件简介 5
  • 1.4.1 Mycat 的历史与未来规划 5
  • 1.4.2 Mycat 与其他中间件的区别 8
  • 1.4.3 Mycat 的优势 10
  • 1.4.4 Mycat 的适用场合 11
  • 第2章 Mycat 入门 13
  • 2.1 环境搭建 13
  • 2.1.1 Windows 环境搭建 13
  • 2.1.2 Linux 环境搭建 15
  • 2.2 Mycat 核心概念详解 16
  • 2.2.1 逻辑库(schema) 16
  • 2.2.2 逻辑表(table) 16
  • 2.2.3 分片节点(dataNode) 17
  • 2.2.4 节点主机(dataHost) 17
  • 2.3 Mycat 原理介绍 18
  • 2.4 参与 Mycat 源码开发 19
  • 2.4.1 Mycat 源码环境搭建 19
  • 2.4.2 Mycat 源码调试 19
  • 第3章 Mycat 进阶 22
  • 3.1 Mycat 配置详解 22
  • 3.1.1 Mycat 支持的两种配置方式 22
  • 3.1.2 server.xml 配置文件 23
  • 3.1.3 schema.xml 配置文件 28
  • 3.1.4 sequence 配置文件 37
  • 3.1.5 zk-create.yaml 配置文件 41
  • 3.1.6 其他配置文件 44
  • 3.2 Mycat 分片规则详解 46
  • 3.2.1 分片表与非分片表 46
  • 3.2.2 ER 关系分片表 46
  • 3.2.3 分片规则 rule.xml 文件详解 46
  • 3.2.4 取模分片 47
  • 3.2.5 枚举分片 48
  • 3.2.6 范围分片 49
  • 3.2.7 范围求模算法 49
  • 3.2.8 固定分片 hash 算法 50
  • 3.2.9 取模范围算法 52
  • 3.2.10 字符串 hash 求模范围算法 53
  • 3.2.11 应用指定的算法 54
  • 3.2.12 字符串 hash 解析算法 54
  • 3.2.13 一致性 hash 算法 55
  • 3.2.14 按日期(天)分片算法 56
  • 3.2.15 按单月小时算法 57
  • 3.2.16 自然月分片算法 58
  • 3.2.17 日期范围 hash 算法 58
  • 3.3 Mycat 管理命令详解 59
  • 3.3.1 Reload 命令 61
  • 3.3.2 Show 命令 62
  • 第4章 Mycat 高级技术实战 68
  • 4.1 用 Mycat 搭建读写分离 68
  • 4.1.1 MySQL 读写分离 69
  • 4.1.2 MySQL Galera Cluster 读写...
  • 4.1.3 SQL Server 读写分离 83
  • 4.2 Mycat 故障切换 86
  • 4.2.1 Mycat 主从切换 86
  • 4.2.2 MySQL Galera 节点切换 99
  • 4.3 Mycat+Percona+HAProxy+Keepal...
  • 4.3.1 Mycat 113
  • 4.3.2 Percona 集群 124
  • 4.3.3 HAProxy 131
  • 4.3.4 Keepalived 138
  • 4.4 MHA+Keepalived 集群搭建 140
  • 4.4.1 配置 MySQL 半同步方式 142
  • 4.4.2 安装配置 MHA 150
  • 4.4.3 测试重构 153
  • 4.4.4 扩展 Keepalived 155
  • 4.5 用 ZooKeeper 搭建 Mycat 高可...
  • 4.5.1 ZooKeeper 概述 158
  • 4.5.2 ZooKeeper 的运用场景 161
  • 4.5.3 ZooKeeper 在 Mycat 中的使...
  • 4.6 Mycat 高可用配置 165
  • 4.7 Mycat 注解技术 170
  • 4.7.1 balance 注解实战 170
  • 4.7.2 master/slave 注解实战 172
  • 4.7.3 SQL 注解实战 173
  • 4.7.4 schema 注解实战 176
  • 4.7.5 dataNode 注解实战 176
  • 4.7.6 catlet 注解实战 177
  • 第5章 Mycat 企业运维 179
  • 5.1 Mycat 性能监控——Mycat-web ...
  • 5.1.1 Mycat-web 简介 179
  • 5.1.2 Mycat-web 的配置和使用 180
  • 5.1.3 Mycat 性能监控指标 181
  • 5.2 Mycat 性能优化 183
  • 5.3 MySQL 优化技术 186
  • 5.3.1 数据库建表设计规范 186
  • 5.3.2 SQL 语句与索引 195
  • 5.3.3 配置文件 206
  • 5.3.4 InnoDB 选择文件系统 212
  • 5.3.5 系统架构 213
  • 第6章 Mycat 架构剖析 215
  • 6.1 Mycat 总体架构介绍 215
  • 6.2 Mycat 网络 I/O 架构与实现 218
  • 6.2.1 Mycat I/O 架构概述 218
  • 6.2.2 前端通信框架 221
  • 6.3 Mycat 线程架构与实现 224
  • 6.3.1 多线程基础 224
  • 6.3.2 Mycat 线程架构 226
  • 6.4 Mycat 内存管理及缓存架构与实...
  • 6.4.1 Mycat 内存管理 229
  • 6.4.2 Mycat 缓存架构与实现 231
  • 6.5 Mycat 连接池架构与实现 232
  • 6.5.1 Mycat 连接池 232
  • 6.5.2 Mycat 连接池架构及代码实现...
  • 6.6 Mycat 主从切换架构与实现 235
  • 6.6.1 Mycat 主从切换概述 236
  • 6.6.2 Mycat 主从切换的实现 238
  • 第7章 Mycat 核心技术分析 241
  • 7.1 Mycat 分布式事务的实现 241
  • 7.1.1 XA 规范 241
  • 7.1.2 二阶段提交 242
  • 7.1.3 三阶段提交 243
  • 7.1.4 Mycat 中分布式事务的实现 244
  • 7.2 Mycat SQL 路由的实现 249
  • 7.2.1 路由的作用 249
  • 7.2.2 SQL 解析器 250
  • 7.2.3 路由计算 252
  • 7.3 Mycat 跨库 Join 的实现 260
  • 7.3.1 全局表 261
  • 7.3.2 ER 分片 262
  • 7.3.3 catlet 263
  • 7.3.4 ShareJoin 264
  • 7.4 Mycat 数据汇聚和排序的实现 270
  • 7.4.1 数据排序 270
  • 7.4.2 数据汇聚 273
  • 第8章 Mycat多数据库支持原理与实...
  • 8.1 MySQL 协议在 Mycat 中的实现 275
  • 8.1.1 MySQL 协议概述 275
  • 8.1.2 Mycat 的 MySQL 协议实现 283
  • 8.2 PostgreSQL 协议在 Mycat 中的...
  • 8.2.1 PostgreSQL 介绍 287
  • 8.2.2 PostgreSQL 协议 288
  • 8.2.3 PostgreSQL 实现 293
  • 8.3 Mycat 对 JDBC 支持的实现 298
  • 8.3.1 Oracle 配置 299
  • 8.3.2 SQL Server 配置 300
  • 8.3.3 MongoDB 配置 301
  • 8.3.4 源码分析 306