互聯(lián)網(wǎng)公司里面幾乎很少有公司不用MySQL,國內(nèi)互聯(lián)網(wǎng)巨頭都在大規(guī)模使用MySQL。如果把MySQL比喻成數(shù)據(jù)庫界的一條巨龍,則性能優(yōu)化和高可用架構設計實踐就是點睛之筆。
《MySQL性能優(yōu)化和高可用架構實踐》將詳細講解MySQL5.7高可用和性能優(yōu)化技術,細致梳理思路,并與真實生產(chǎn)案例相結(jié)合,通過原理闡述到實戰(zhàn)部署,幫助讀者將所學知識點運用到實際工作中。
《MySQL性能優(yōu)化和高可用架構實踐》分為13章,詳解MySQL5.7數(shù)據(jù)庫體系結(jié)構,InnoDB存儲引擎,MySQL事務和鎖,性能優(yōu)化,服務器全面優(yōu)化、性能監(jiān)控,以及MySQL主從復制、PXC、MHA、MGR、Keepalived+雙主復制等高可用集群架構的設計與實踐過程,并介紹海量數(shù)據(jù)分庫分表和Mycat中間件的實戰(zhàn)操作。
《MySQL性能優(yōu)化和高可用架構實踐》既適合有一定基礎的MySQL數(shù)據(jù)庫學習者、MySQL數(shù)據(jù)庫開發(fā)人員和MySQL數(shù)據(jù)庫管理人員閱讀,同時也能作為高等院校和培訓學校相關專業(yè)師生的參考用書。
本書詳解MySQL 5.7性能優(yōu)化和高可用技術,細致梳理思路,并與真實生產(chǎn)案例相結(jié)合,通過原理闡述和實戰(zhàn)部署幫助讀者將所學知識點運用到實際工作中。
數(shù)字化轉(zhuǎn)型開始從IT時代進入DT時代。面對大量的數(shù)據(jù)和業(yè)務,更多的公司意識到了數(shù)據(jù)價值的重要性,如何管理和利用好數(shù)據(jù)變得越來越重要。MySQL是開源數(shù)據(jù)庫方向的典型代表,以MySQL為主的開源技術生態(tài)正變得越來越流行。它的發(fā)展歷程見證了互聯(lián)網(wǎng)的成長。
相對于成熟的商業(yè)數(shù)據(jù)庫,MySQL缺乏高質(zhì)量的技術文檔,我在接觸MySQL的過程中,也感覺市面上的相關圖書還存在一些不足,基礎運維工作(安裝部署、備份恢復等)的內(nèi)容比較多,而高可用架構設計和性能優(yōu)化方面的圖書比較少,技術人員也需要技能提高升級。
說到寫書的緣由,我從國企大膽走出來,去了知名外企工作,從外企出來后也做過獨立顧問和自由講師。人到中年的時候,獨自一人求職進互聯(lián)網(wǎng)大廠做架構師,一路走來,才發(fā)現(xiàn)克服中年危機的秘訣就是十六個字“不忘初心,永不止步,銳意進取,砥礪前行”。雖然寫書的過程著實是一件很辛苦的事情,但還是堅持了下來。寫書就是一種記憶打卡,不但能提升自我,而且能夠幫助到別人。關于本書
目前生產(chǎn)環(huán)境中主流的版本是MySQL5.7,本書知識結(jié)構主要包括MySQL5.7性能優(yōu)化和高可用架構設計實踐兩方面。全書共13章,內(nèi)容覆蓋MySQL5.7數(shù)據(jù)庫體系結(jié)構、InnoDB存儲引擎、MySQL事務和鎖、性能優(yōu)化、服務器全面優(yōu)化、性能監(jiān)控、主從復制,以及PXC集群、MHA自動故障轉(zhuǎn)移群集、MGR組復制、Keepalived+雙主復制等高可用集群架構的設計與實踐,還有針對海量數(shù)據(jù)進行分庫分表和Mycat中間件介紹和實戰(zhàn)操作。全書秉承“實踐為主、理論夠用”的原則,將實戰(zhàn)操作融入各個知識點的講解之中。
宋立桓,IT資深技術專家、布道師,主要負責為企業(yè)客戶提供顧問咨詢、培訓和方案設計服務。目前是騰訊云架構師,專注于云計算、大數(shù)據(jù)和人工智能,對區(qū)塊鏈的相關技術也有深入的研究。著有圖書《Cloudera Hadoop大數(shù)據(jù)平臺實戰(zhàn)指南》和《AI制勝:機器學習極簡入門》。
第1章 MySQL架構介紹
1.1 MySQL簡介
1.2 MySQL主流的分支版本
1.3 MySQL存儲引擎
1.4 MySQL邏輯架構
1.5 MySQL物理文件體系結(jié)構
第2章 InnoDB存儲引擎體系結(jié)構
2.1 緩沖池
2.2 change buffer
2.3 自適應哈希索引
2.4 redo log buffer
2.5 double write
2.6 InnoDB后臺線程
2.6.1 InnoDB主線程
2.6.2 InnoDB后臺I/O線程
2.6.3 InnoDB臟頁刷新線程
2.6.4 InnoDB purge線程
2.7 redo log
2.8 undo log
2.9 Query Cache
第3章 MySQL事務和鎖
3.1 MySQL事務概述
3.2 MySQL事務隔離級別
3.3 InnoDB的鎖機制介紹
3.4 鎖等待和死鎖
3.4.1 鎖等待
3.4.2 死鎖
3.5 鎖問題的監(jiān)控
第4章 SQL語句性能優(yōu)化
4.1 MySQL查詢過程
4.2 創(chuàng)建高性能索引
4.2.1 索引的原理
4.2.2 聚集索引和輔助索引
4.2.3 Index Condition Pushdown
4.2.4 Multi-Range Read Optimization
4.2.5 Batched Key Access
4.3 慢SQL語句優(yōu)化思路
4.3.1 抓取慢SQL語句
4.3.2 利用explain分析查詢語句
4.3.3 利用show profiles分析慢SQL語句
4.4 索引使用的原則及案例分析
4.4.1 索引使用的原則
4.4.2 沒有使用到索引的案例分析
第5章 MySQL服務器全面優(yōu)化
5.1 MySQL 5.7 InnoDB存儲引擎增強特性
5.2 硬件層面優(yōu)化
5.3 Linux操作系統(tǒng)層面優(yōu)化
5.4 MySQL配置參數(shù)優(yōu)化
5.5 MySQL設計規(guī)范
第6章 MySQL性能監(jiān)控
6.1 監(jiān)控圖表的指導意義
6.2 Lepus數(shù)據(jù)庫監(jiān)控系統(tǒng)實戰(zhàn)
6.2.1 Lepus數(shù)據(jù)庫監(jiān)控系統(tǒng)簡介
6.2.2 Lepus數(shù)據(jù)庫監(jiān)控系統(tǒng)部署
6.2.3 監(jiān)控MySQL服務器
6.2.4 Lepus慢查詢分析平臺
第7章 MySQL主從復制詳解
7.1 主從復制的概念和用途
7.2 主從復制的原理及過程描述
7.3 主從復制的重點參數(shù)解析
7.4 主從復制的部署架構
7.5 異步復制
7.6 半同步復制
7.6.1 半同步復制概念和原理
7.6.2 半同步復制配置
7.7 GTID復制
7.7.1 GTID特性和復制原理介紹
7.7.2 GTID復制配置實戰(zhàn)
7.8 多源復制
7.9 主從復制故障處理
7.10 主從延遲解決方案和并行復制
第8章 PXC高可用解決方案
8.1 PXC概述
8.2 PXC的實現(xiàn)原理
8.3 PXC集群的優(yōu)缺點
8.4 PXC中的重要概念
8.5 PXC集群部署實戰(zhàn)
8.6 PXC集群狀態(tài)監(jiān)控
8.7 PXC集群的適用場景和維護總結(jié)
第9章 基于MHA實現(xiàn)的MySQL自動故障轉(zhuǎn)移集群
9.1 MHA簡介
9.2 MHA原理
9.3 MHA的優(yōu)缺點
9.4 MHA工具包的功能
9.5 MHA集群部署實戰(zhàn)
第10章 MySQL Group Replication
10.1 MGR概述
10.2 MGR基本原理
10.3 MGR服務模式
10.3.1 單主模式
10.3.2 多主模式
10.4 MGR的注意事項
10.5 MGR部署實戰(zhàn)
10.6 MGR的監(jiān)控
10.7 MGR的主節(jié)點故障無感知切換
第11章 Keepalived+雙主復制的高可用架構
11.1 Keepalived+雙主架構介紹
11.2 Keepalived介紹
11.3 雙主+Keepalived集群搭建
第12章 數(shù)據(jù)庫分庫分表與中間件介紹
12.1 關系數(shù)據(jù)庫的架構演變
12.1.1 數(shù)據(jù)庫讀寫分離
12.1.2 數(shù)據(jù)庫垂直分庫
12.1.3 數(shù)據(jù)庫水平分庫與水平分表
12.2 分庫分表帶來的影響
12.3 常見的分庫分表中間件介紹
第13章 Mycat中間件詳解
13.1 Mycat簡介
13.2 Mycat核心概念
13.3 Mycat安裝部署
13.4 Mycat配置文件詳解
13.4.1 schema.xml
13.4.2 server.xml
13.4.3 rule.xml
13.5 Mycat分庫分表實戰(zhàn)
13.6 Mycat讀寫分離實戰(zhàn)