推薦序:飛躍的第2版
前 言
第1章 MariaDB架構與曆史 1
1.1 MariaDB的介紹 1
1.2 MariaDB和MySQL的兼容性 2
1.3 MariaDB 10.0新增的功能 3
1.3.1 更多的存儲引擎 4
1.3.2 速度的提升 5
1.3.3 擴展和新功能 5
1.4 如何將MySQL遷移至MariaDB 8
1.5 使用二進製包安裝MariaDB 10.1企業版 10
1.6 總結 12
第2章 MySQL 5.7與MariaDB 10.1的新特性 13
2.1 性能提升 14
2.2 安全性的提升 15
2.2.1 默認開啓SSL 15
2.2.2 不再明文顯示用戶密碼 20
2.2.3 sql_mode的改變 20
2.3 InnoDB存儲引擎的提升 22
2.3.1 更改索引名字時不會鎖錶 22
2.3.2 在綫DDL修改varchar字段屬性時不鎖錶 23
2.3.3 InnoDB/MyisAM存儲引擎支持中文全文索引 26
2.3.4 InnoDB Buffer Pool預熱改進 29
2.3.5 在綫調整innodb_Buffer_Pool_Size不用重啓mysql進程 31
2.3.6 迴收(收縮)undo log迴滾日誌物理文件空間 32
2.3.7 InnoDB提供通用錶空間 33
2.3.8 創建InnoDB獨立錶空間指定存放路徑 34
2.3.9 遷移單獨一張InnoDB錶到遠程服務器 35
2.3.10 修改InnoDB redo log事務日誌文件大小更人性化 36
2.3.11 死鎖可以打印到錯誤日誌裏 37
2.3.12 支持InnoDB隻讀事務 37
2.3.13 支持InnoDB錶空間數據碎片整理 38
2.4 JSON格式的支持 39
2.4.1 支持用JSON格式存儲數據 39
2.4.2 動態列支持用JSON格式存儲數據 41
2.5 支持虛擬列(函數索引) 44
2.5.1 MySQL 5.7支持函數索引 44
2.5.2 MariaDB 10.0/10.1支持函數索引 45
2.6 功能提升 46
2.6.1 支持殺死慢的SQL語句 46
2.6.2 支持一張錶有多個INSERT/DELETE/UPDATE觸發器 48
2.6.3 引入綫程池(Thread Pool)技術 49
2.6.4 提供審計日誌功能 52
2.6.5 支持explain update 53
2.6.6 在MySQL 5.7 中按Ctrl+C組閤鍵不會退齣客戶端 54
2.6.7 可將錯誤日誌打印到係統日誌文件中 54
2.6.8 支持創建角色 55
2.6.9 支持TokuDB存儲引擎 56
2.7 優化器改進 59
2.7.1 針對子查詢select采用半連接優化 59
2.7.2 優化派生子查詢 62
2.7.3 優化排序limit 65
2.7.4 優化IN條件錶達式 66
2.7.5 優化union all 69
2.7.6 支持索引下推優化 70
2.7.7 支持Multi Range Read索引優化 72
2.7.8 支持Batched Key Access(BKA)索引優化 75
2.7.9 支持Hash Join索引優化 77
2.8 半同步復製改進 78
2.8.1 半同步復製簡介 78
2.8.2 半同步復製的安裝配置 79
2.8.3 參數說明 79
2.8.4 功能測試 80
2.8.5 性能測試 84
2.9 GTID復製改進 87
2.9.1 GTID復製概述 87
2.9.2 在MySQL 5.6的GTID模式下同步復製報錯不能跳過的解決方法 90
2.9.3 MySQL 5.7中GTID復製的改進 93
2.9.4 GTID復製的陷阱 95
2.9.5 MariaDB 10.1中GTID復製的改進 96
2.9.6 GTID的使用方式不同 97
2.10 MySQL 5.6/5.7從庫崩潰安全恢復 98
2.11 MariaDB 10.0/10.1從庫崩潰安全恢復 99
2.12 slave從庫多綫程復製 99
2.13 slave支持多源復製 101
2.14 MySQL 5.7設置同步復製過濾不用重啓mysql服務進程 103
2.15 小結 104
第3章 故障診斷 105
3.1 影響MySQL性能的因素 105
3.2 係統性能評估標準 106
3.2.1 影響Linux服務器性能的因素 106
3.2.2 係統性能評估指標 107
3.2.3 開源監控和評估工具介紹 109
3.3 故障與處理 112
3.3.1 連接數過多導緻程序連接報錯的原因 112
3.3.2 記錄子查詢引起的宕機 117
3.3.3 診斷事務量突高的原因 120
3.3.4 謹慎設置binlog_format=MIXED 123
3.3.5 未設置swap分區導緻內存耗盡,主機死機 127
3.3.6 MySQL故障切換之事件調度器注意事項 128
3.3.7 人工誤刪除InnoDB ibdata數據文件,如何恢復 130
3.3.8 update忘加where條件誤操作恢復(模擬Oracle閃迴功能) 132
3.3.9 delete忘加where條件誤操作恢復(模擬Oracle閃迴功能) 141
第4章 同步復製報錯故障處理 145
4.1 最常見的3種故障 145
4.1.1 在master上刪除一條記錄時齣現的故障 146
4.1.2 主鍵重復 147
4.1.3 在master上更新一條記錄,而slave上卻找不到 148
4.2 特殊情況:slave的中繼日誌relay-log損壞 149
4.3 人為失誤 151
4.4 避免在master上執行大事務 152
4.5 slave_exec_mode參數可自動處理同步復製錯誤 153
4.6 如何驗證主從數據一緻 154
4.7 binlog_ignore_db引起的同步復製故障 156
4.8 MySQL5.5.19/20同步一個Bug 157
4.9 恢復slave從機上的某幾張錶的簡要方法 159
4.10 如何乾淨地清除slave同步信息 160
第5章 性能調優 162
5.1 錶設計 162
5.2 字段類型的選取 166
5.2.1 數值類型 167
5.2.2 字符類型 172
5.2.3 時間類型 174
5.2.4 小技巧:快速修改錶結構 181
5.2.5 pt-online-schema-change在綫更改錶結構 185
5.2.6 MySQL5.6在綫DDL更改錶測試 191
5.3 采用閤適的鎖機製 194
5.3.1 錶鎖的演示 194
5.3.2 行鎖的演示 197
5.3.3 InnoDB引擎與MyISAM引擎的性能對比 199
5.4 選擇閤適的事務隔離級彆 201
5.4.1 事務的概念 201
5.4.2 事務的實現 202
5.4.3 事務隔離級彆介紹 204
5.5 SQL優化與閤理利用索引 210
5.5.1 如何定位執行很慢的SQL語句 210
5.5.2 SQL優化案例分析 211
5.5.3 閤理使用索引 221
5.6 my.cnf配置文件調優 231
5.6.1 per_thread_buffers優化 231
5.6.2 global_buffers優化 233
5.6.3 Query Cache在不同環境下的使用 234
5.6.4 tuning-primer.sh性能調試工具的使用 238
5.6.5 72 GB內存的my.cnf配置文件 241
5.6.6 謹慎使用分區錶功能 244
5.7 MySQL5.6同步復製新特性詳解 246
第6章 備份與恢復 256
6.1 冷備份 257
6.2 邏輯備份 257
6.2.1 mysqldump增加瞭一個重要參數 258
6.2.2 取代mysqldump的新工具mydumper 259
6.2.3 邏輯備份全量、增量備份腳本 262
6.3 熱備份與恢復 263
第7章 高可用MHA架構集群管理 268
7.1 MHA架構簡介 268
7.1.1 master自動監控和故障轉移 270
7.1.2 手工處理master故障轉移 270
7.1.3 在綫平滑切換 270
7.2 MHA配置安裝 270
7.3 MHA故障切換演示 277
7.3.1 場景一:master自動監控和故障轉移 277
7.3.2 場景二:master手工故障轉移 285
7.3.3 場景三:在綫平滑切換 285
7.4 MHA高可用架構總結 290
第8章 MySQL架構演進:“一主多從、讀/寫分離” 293
8.1 實現讀/寫分離的兩種方式 293
8.2 主從同步延遲的判斷標準 297
8.3 HAProxy感知MySQL主從同步延遲 300
8.4 讀/寫分離MariaDB MaxScale架構搭建演示 307
8.4.1 配置環境及安裝介紹 307
8.4.2 基於connect方式的測試 311
8.4.3 基於statement方式(SQL解析)的測試 312
8.4.4 MaxScale延遲檢測 313
8.5 讀/寫分離OneProxy介紹及架構搭建演示 315
8.5.1 OneProxy簡介 316
8.5.2 OneProxy的功能及安裝介紹 316
8.5.3 OneProxy讀/寫分離接入限製 320
第9章 Codership Galera Cluster 集群架構搭建與管理 322
9.1 Codership Galera Cluster的特性和優缺點 323
9.2 Codership Galera Cluster的局限性 323
9.3 Codership Galera Cluster的工作原理 324
9.4 Codership Galera Cluster的配置 328
9.4.1 Codership Galera Cluster的配置環境及安裝 328
9.4.2 功能測試 332
9.5 HAProxy結閤Galera Cluster實現無單點秒級故障切換 337
第10章 OneProxy分庫分錶的搭建與管理 345
10.1 OneProxy 分庫分錶的搭建 346
10.1.1 配置與安裝 346
10.1.2 前端PHP/Java程序接入事項 349
10.2 OneProxy分庫分錶接入限製 349
10.3 OneProxy分庫分錶基本測試 351
10.3.1 分庫分錶的功能測試 351
10.3.2 分庫分錶的二級分區測試 354
10.3.3 分庫分錶的聚閤測試 358
10.3.4 分庫分錶的插入測試 359
10.3.5 分庫分錶不支持跨庫join的測試 360
10.3.6 分庫分錶不支持分布式事務的測試 361
10.3.7 分庫分錶不支持存儲過程的測試 361
10.4 搭建OneProxy高可用故障切換HA 362
10.5 OneProxy 黑名單SQL防火牆搭建測試 363
第11章 Lepus慢日誌分析平颱搭建與維護 367
11.1 Lepus基礎組件的安裝 367
11.2 安裝percona-toolkit工具 370
· · · · · · (
收起)