第 1 章數據庫中間件與分布式數據庫的實現 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 讀寫分離 73
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+Keepalived 113
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 高可用集群 158
4.5.1 ZooKeeper 概述 158
4.5.2 ZooKeeper 的運用場景 161
4.5.3 ZooKeeper 在 Mycat 中的使用 163
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 詳解 179
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 內存管理及緩存架構與實現 228
6.4.1 Mycat 內存管理 229
6.4.2 Mycat 緩存架構與實現 231
6.5 Mycat 連接池架構與實現 232
6.5.1 Mycat 連接池 232
6.5.2 Mycat 連接池架構及代碼實現 234
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多數據庫支持原理與實現 275
8.1 MySQL 協議在 Mycat 中的實現 275
8.1.1 MySQL 協議概述 275
8.1.2 Mycat 的 MySQL 協議實現 283
8.2 PostgreSQL 協議在 Mycat 中的實現 287
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
· · · · · · (
收起)