《MySQL運(yùn)維進(jìn)階指南》運(yùn)維視角剖析MySQL性能優(yōu)化、高可用架構(gòu)、監(jiān)控管理難題及解決方案,51CTO和DBAPlus官方推薦
定 價(jià):109 元
叢書名:數(shù)據(jù)庫(kù)技術(shù)叢書
- 作者:賀春旸 著
- 出版時(shí)間:2022/10/1
- ISBN:9787111712077
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP311.138-62
- 頁(yè)碼:342
- 紙張:
- 版次:
- 開本:16
本書以構(gòu)建高性能MySQL服務(wù)器為核心,先介紹MySQL 8.0和MariaDB 10.5的新特性,然后以實(shí)戰(zhàn)為導(dǎo)向,從故障診斷與優(yōu)化、性能調(diào)優(yōu)、備份與恢復(fù)、MySQL高可用集群搭建與管理、MySQL性能與服務(wù)監(jiān)控、SQL自助上線等角度深入講解了如何管理與維護(hù)MySQL服務(wù)器。書中內(nèi)容均是基于筆者多年的實(shí)踐經(jīng)驗(yàn)整理而成,對(duì)于有代表性的疑難問(wèn)題,還給出了實(shí)用的情景模擬以及解決方案。
51CTO官方推薦
MySQL以其輕便、快捷、運(yùn)營(yíng)成本低等優(yōu)點(diǎn)成為一款*受企業(yè)歡迎的數(shù)據(jù)庫(kù)產(chǎn)品。賀春旸老師在MySQL領(lǐng)域深耕數(shù)十年,有著豐富的一線工作經(jīng)驗(yàn)。日常在51CTO博客更文也是深受讀者的喜歡,更是成為MySQL領(lǐng)域不可多得的博客專家。本書是賀春旸老師的又一佳作,他將多年實(shí)操經(jīng)驗(yàn)融入字里行間,讓讀者能更快速理解并掌握知識(shí)點(diǎn),在面對(duì)自己工作中實(shí)際問(wèn)題時(shí),如虎添翼、從容應(yīng)對(duì)!
——51CTO博客(https://blog.51cto.com/)
前言
第一部分 MariaDB與MySQL的新特性
第1章 MariaDB 10.5的新特性2
1.1 MariaDB概述2
1.2 MariaDB 10.5與MySQL 8.0的
比較3
1.2.1 存儲(chǔ)引擎3
1.2.2 擴(kuò)展和新功能4
1.3 如何將MySQL遷移至
MariaDB中5
1.4 MariaDB 10.5新特性詳解7
1.4.1 客戶端連接層的改進(jìn)7
1.4.2 服務(wù)層的改進(jìn)24
1.4.3 InnoDB存儲(chǔ)引擎層的改進(jìn)61
第2章 MySQL 8.0的新特性70
2.1 MySQL 8.0概述70
2.2 MySQL 8.0新特性詳解70
2.2.1 性能提升73
2.2.2 客戶端連接層的改進(jìn)74
2.2.3 服務(wù)層的改進(jìn)81
2.2.4 優(yōu)化器的改進(jìn)86
2.2.5 同步復(fù)制的改進(jìn)104
2.2.6 InnoDB存儲(chǔ)引擎層的改進(jìn)110
2.2.7 通過(guò)pt-upgrade工具檢測(cè)SQL
語(yǔ)法的兼容性122
第二部分 故障診斷與性能優(yōu)化
第3章 故障診斷126
3.1 影響MySQL性能的因素126
3.2 系統(tǒng)性能評(píng)估標(biāo)準(zhǔn)127
3.2.1 影響Linux服務(wù)器性能的
因素128
3.2.2 系統(tǒng)性能評(píng)估指標(biāo)129
3.2.3 開源監(jiān)控和評(píng)估工具131
3.3 故障與處理136
3.3.1 基于pt-online-schema-change
修改表結(jié)構(gòu)是否安全136
3.3.2 修改外鍵時(shí),pt-osc內(nèi)部是
如何處理的138
3.3.3 刪除大表的小技巧139
3.3.4 重構(gòu)Percona pt-archiver:輕松
歸檔大表數(shù)據(jù)140
3.3.5 Percona pt-kill改造版(PHP):
慢SQL報(bào)警及扼殺利器143
3.3.6 自適應(yīng)Hash索引引起的
MySQL崩潰與重啟146
3.3.7 診斷事務(wù)量突增的原因148
3.3.8 謹(jǐn)慎設(shè)置binlog_format=
MIXED150
3.3.9 MySQL故障切換之事件
調(diào)度器的注意事項(xiàng)155
3.3.10 誤操作的恢復(fù)158
3.3.11 快速恢復(fù)二進(jìn)制日志161
第4章 處理同步復(fù)制報(bào)錯(cuò)故障162
4.1 常見(jiàn)的3種故障162
4.1.1 在主庫(kù)上刪除一條記錄導(dǎo)致
的故障163
4.1.2 主鍵重復(fù)164
4.1.3 在主庫(kù)上更新了一條記錄,
在從庫(kù)上卻找不到165
4.2 特殊情況:從庫(kù)的中繼日志受損166
4.3 多臺(tái)從庫(kù)中存在重復(fù)的server-id168
4.4 避免在主庫(kù)上執(zhí)行大事務(wù)169
4.5 slave_exec_mode參數(shù)可自動(dòng)
處理同步復(fù)制錯(cuò)誤169
4.6 如何驗(yàn)證主從數(shù)據(jù)是否一致171
4.7 binlog_ignore_db引起的同步
復(fù)制故障174
4.8 在從庫(kù)上恢復(fù)指定表的簡(jiǎn)要
方法176
4.9 如何徹底清除從庫(kù)的同步信息177
第5章 性能調(diào)優(yōu)179
5.1 表的設(shè)計(jì)規(guī)范179
5.1.1 表的設(shè)計(jì)目標(biāo)179
5.1.2 數(shù)據(jù)庫(kù)三范式的定義180
5.2 字段類型的選取185
5.2.1 數(shù)值類型185
5.2.2 字符類型191
5.2.3 時(shí)間類型194
5.3 采用合適的鎖機(jī)制201
5.3.1 表鎖201
5.3.2 行鎖203
5.3.3 行鎖轉(zhuǎn)表鎖204
5.3.4 死鎖205
5.4 選擇合適的事務(wù)隔離級(jí)別207
5.4.1 事務(wù)的概念207
5.4.2 事務(wù)的實(shí)現(xiàn)208
5.4.3 事務(wù)的隔離級(jí)別210
5.5 SQL優(yōu)化與合理利用索引218
5.5.1 慢查詢的定位方法218
5.5.2 SQL優(yōu)化案例分析219
5.5.3 合理使用索引230
5.6 my.cnf配置文件調(diào)優(yōu)239
5.6.1 per_thread_buffers參數(shù)調(diào)優(yōu)239
5.6.2 global_buffers參數(shù)調(diào)優(yōu)241
5.6.3 查詢緩存在不同環(huán)境下的
使用242
5.7 MySQL設(shè)計(jì)、開發(fā)和操作規(guī)范243
5.8 SQL自助上線平臺(tái)254
5.8.1 簡(jiǎn)介254
5.8.2 審核規(guī)則256
第6章 備份與恢復(fù)258
6.1 冷備份259
6.2 邏輯備份259
6.2.1 mysqldump中增加了重要參數(shù)
--dump-slave260
6.2.2 取代mysqldump的新工具
mydumper261
6.3 熱備份與恢復(fù)265
6.3.1 XtraBackup的工作原理265
6.3.2 使用Percona XtraBackup 8.0
備份MySQL 8.0269
6.3.3 MariaDB熱備份工具
mariabackup270
第三部分 高可用架構(gòu)
第7章 高可用架構(gòu)集群管理272
7.1 MaxScale高可用架構(gòu)273
7.1.1 功能概述273
7.1.2 搭建MaxScale高可用架構(gòu)274
7.1.3 模擬故障轉(zhuǎn)移279
7.2 MySQL組復(fù)制高可用架構(gòu)282
7.2.1 組復(fù)制的工作原理283
7.2.2 組復(fù)制的特性和注意事項(xiàng)288
7.2.3 組復(fù)制的使用方法289
第8章 MySQL架構(gòu)演進(jìn):一主
多從、讀寫分離294
8.1 實(shí)現(xiàn)讀寫分離的兩種方式295
8.2 主從復(fù)制延遲的計(jì)算方法297
8.3 HAProxy感知MySQL主從同步
延遲300
8.4 搭建讀寫分離MariaDB MaxScale
架構(gòu)307
8.4.1 配置環(huán)境及安裝介紹307
8.4.2 基于連接方式的測(cè)試311
8.4.3 基于語(yǔ)句方式(SQL解析)
的測(cè)試311
8.4.4 MaxScale延遲檢測(cè)312
第9章 TSpider分庫(kù)分表的搭建與
管理316
9.1 TSpider簡(jiǎn)介317
9.1.1 TSpider的使用場(chǎng)景317
9.1.2 TSpider的取模擴(kuò)容問(wèn)題324
9.1.3 TSpider負(fù)載均衡架構(gòu)設(shè)計(jì)325
9.2 Tdbctl詳解325
9.2.1 安裝Tdbctl組件326
9.2.2 Tdbctl的重要參數(shù)說(shuō)明327
9.2.3 Tdbctl的配置管理327
9.2.4 Tdbctl組件的驗(yàn)證327
第四部分 監(jiān)控管理平臺(tái)
第10章 MySQL監(jiān)控管理平臺(tái)330
10.1 圖形可視化監(jiān)控工具M(jìn)ySQL
Monitor331
10.1.1 環(huán)境搭建334
10.1.2 搭建MySQL Monitor工具334
10.2 圖形化顯示慢日志的工具M(jìn)ySQL
Slowquery336
10.2.1 環(huán)境搭建337
10.2.2 MySQL Slowquery工具的
配置337