MySQL 性能優化和高可用架構實踐
內容描述
因特網公司裡面幾乎很少有公司不用MySQL,國內因特網巨頭都在大規模使用MySQL。
如果把MySQL比喻成數據庫界的一條巨龍,則性能優化和高可用架構設計實踐*是點睛之筆。
本書將詳細講解 MySQL 5.7高可用和性能優化技術,細緻梳理思路,並與真實生產案例相結合,
通過原理闡述到實戰部署,幫助讀者將所學知識點運用到實際工作中。
本書分為13章,詳解MySQL 5.7數據庫體系結構,InnoDB存儲引擎,MySQL事務和鎖,
性能優化,服務器全面優化、性能監控,以及MySQL主從復制、
PXC、MHA、MGR、Keepalived+雙主複製等高可用集群架構的設計與實踐過程,
並介紹海量數據分庫分錶和Mycat中間件的實戰操作。
本書既適合有一定基礎的 MySQL數據庫學習者、MySQL數據庫開發人員和 MySQL數據庫管理人員閱讀,
同時也能作為高等院校和培訓學校相關專業師生的參考用書。
目錄大綱
1章 MySQL架構介紹 1
1.1 MySQL簡介 1
1.2 MySQL主流的分支版本 2
1.3 MySQL存儲引擎 4
1.4 MySQL邏輯架構 6
1.5 MySQL物理文件體系結構 8
第2章 InnoDB存儲引擎體系結構 14
2.1 緩衝池 14
2.2 change buffer 17
2.3 自適應哈希索引 19
2.4 redo log buffer 19
2.5 double write 20
2.6 InnoDB後台線程 22
2.6.1 InnoDB主線程 22
2.6.2 InnoDB後台I/O線程 23
2.6.3 InnoDB臟頁刷新線程 24
2.6.4 InnoDB purge線程 25
2.7 redo log 25
2.8 undo log 26
2.9 Query Cache 27
第3章 MySQL事務和鎖 28
3.1 MySQL事務概述 28
3.2 MySQL事務隔離級別 30
3.3 InnoDB的鎖機制介紹 33
3.4 鎖等待和死鎖 36
3.4.1 鎖等待 36
3.4.2 死鎖 38
3.5 鎖問題的監控 39
第4章 SQL語句性能優化 42
4.1 MySQL查詢過程 42
4.2 創建高性能索引 44
4.2.1 索引的原理 44
4.2.2 聚集索引和輔助索引 46
4.2.3 Index Condition Pushdown 47
4.2.4 Multi-Range Read Optimization 50
4.2.5 Batched Key Access 52
4.3 慢SQL語句優化思路 54
4.3.1 抓取慢SQL語句 54
4.3.2 利用explain分析查詢語句 57
4.3.3 利用show profiles分析慢SQL語句 60
4.4 索引使用的原則及案例分析 61
4.4.1 索引使用的原則 61
4.4.2 沒有使用到索引的案例分析 62
第5章 MySQL服務器全面優化 64
5.1 MySQL 5.7 InnoDB存儲引擎增強特性 64
5.2 硬件層面優化 68
5.3 Linux操作系統層面優化 69
5.4 MySQL配置參數優化 70
5.5 MySQL設計規範 72
第6章 MySQL性能監控 75
6.1 監控圖表的指導意義 75
6.2 Lepus數據庫監控系統實戰 76
6.2.1 Lepus數據庫監控系統簡介 76
6.2.2 Lepus數據庫監控系統部署 77
6.2.3 監控MySQL服務器 85
6.2.4 Lepus慢查詢分析平台 89
第7章 MySQL主從復制詳解 93
7.1 主從復制的概念和用途 93
7.2 主從復制的原理及過程描述 94
7.3 主從復制的重點參數解析 95
7.4 主從復制的部署架構 97
7.5 異步複製 98
7.6 半同步複製 102
7.6.1 半同步複製概念和原理 102
7.6.2 半同步複製配置 104
7.7 GTID複製 105
7.7.1 GTID特性和復制原理介紹 105
7.7.2 GTID複製配置實戰 106
7.8 多源複製 109
7.9 主從復制故障處理 111
7.10 主從延遲解決方案和並行複制 114
第8章 PXC高可用解決方案 118
8.1 PXC概述 118
8.2 PXC的實現原理 119
8.3 PXC集群的優缺點 120
8.4 PXC中的重要概念 121
8.5 PXC集群部署實戰 122
8.6 PXC集群狀態監控 131
8.7 PXC集群的適用場景和維護總結 132
第9章 基於MHA實現的MySQL自動故障轉移集群 134
9.1 MHA簡介 134
9.2 MHA原理 135
9.3 MHA的優缺點 136
9.4 MHA工具包的功能 136
9.5 MHA集群部署實戰 137
第壹0章 MySQL Group Replication 156
10.1 MGR概述 156
10.2 MGR基本原理 157
10.3 MGR服務模式 160
10.3.1 單主模式 160
10.3.2 多主模式 160
10.4 MGR的注意事項 161
10.5 MGR部署實戰 162
10.6 MGR的監控 166
10.7 MGR的主節點故障無感知切換 170
第壹1章 Keepalived+雙主複製的高可用架構 171
11.1 Keepalived+雙主架構介紹 171
11.2 Keepalived介紹 171
11.3 雙主+Keepalived集群搭建 172
第壹2章 數據庫分庫分錶與中間件介紹 179
12.1 關係數據庫的架構演變 179
12.1.1 數據庫讀寫分離 179
12.1.2 數據庫垂直分庫 180
12.1.3 數據庫水平分庫與水平分錶 180
12.2 分庫分錶帶來的影響 182
12.3 常見的分庫分錶中間件介紹 183
第壹3章 Mycat中間件詳解 185
13.1 Mycat簡介 185
13.2 Mycat核心概念 186
13.3 Mycat安裝部署 188
13.4 Mycat配置文件詳解 193
13.4.1 schema.xml 193
13.4.2 server.xml 196
13.4.3 rule.xml 198
13.5 Mycat分庫分錶實戰 201
13.6 Mycat讀寫分離實戰 208