深入理解MySQL主從原理(32講)重點及目錄
本文是我的系列 深入理解MySQL主從原理(32講) 中的重點及目錄情況。歡迎大家訂閱如下:
如果圖片不能顯示可檢視下面連結:
https://www.jianshu.com/p/d636215d767f
第1節:GTID的基本概念
- 1.1 GTID的作用
- 1.2 GTID的基本表示
- 1.3 server_uuid的生成
- 1.4 GTID的生成
- 1.5 GTID_LOG_EVENT和PREVIOUS_GTIDS_LOG_EVENT簡介
- 1.6 gtid_executed表的作用
第2節:mysql.gtid_executed表/gtid_executed變數/gtid_purged變數的更改時機
- 2.1 mysql.gtid_executed表/gtid_executed變數/gtid_purged變數的作用
- 2.2 修改時機圖解
- 2.3 主庫修改時機
- 2.4 從庫修改時機
- 2.5 通用修改時機
- 2.6 通用更改時機原始碼函式簡析
第3節:GTID模組初始化簡介和引數binlog_gtid_simple_recovery
- 3.1 簡化的初始化流程圖
- 3.2 步驟解析
第4節:GTID中的運維
- 4.1 如何跳過一個事務
- 4.2 mysqldump匯出行為的改變
- 4.3 搭建GTID AUTO_POSITION MODE模式的主從
- 4.4 主從切換
- 4.5 gitd_mode引數的含義
- 4.6.online開啟GTID
- 4.7 offline開啟GTID
- 4.8 開啟GTID的注意事項
- 4.9 ONGOING_ANONYMOUS_TRANSACTION_COUNT統計值的變更時機
- 4.10 設定MASTER_AUTO_POSITION = 1的影響
- 4.11 offline開啟GTID丟失資料的測試
第5節:Binary log Event 的總體格式
- 5.1 binary log綜述
- 5.2 Event的總體格式
- 5.3 Event header和Event footer
- 5.4 具體解析
- 5.5 本系列將介紹Event的type code
第6節:重點Event FORMAT_DESCRIPTION_EVENT/PREVIOUS_GTIDS_LOG_EVENT
- 6.1 FORMAT_DESCRIPTION_EVENT
6.1.1 FORMAT_DESCRIPTION_EVENT的作用
6.1.2 原始碼重要介面
6.1.3 主體格式
6.1.4 例項解析
6.1.5 生成時機 - 6.2 PREVIOUS_GTIDS_LOG_EVENT
6.2.1 PREVIOUS_GTIDS_LOG_EVENT的作用
6.2.2 原始碼重要介面
6.2.3 主體格式
6.2.4 例項解析
6.2.5 生成時機
第7節:重點Event GTID_LOG_EVENT
- 7.1 GTID_LOG_EVENT
7.1.1 GTID_LOG_EVENT的作用
7.1.2 原始碼重要介面
7.1.3 主體格式
7.1.4 簡單解析
7.1.5 生成時機
7.1.6 ANONYMOUS_GTID_LOG_EVENT
7.1.7 GTID 三種模式第8節:重點Event QUERY_EVENT/MAP_EVENT
- 8.1 QUERY_EVENT
8.1.1 QUERY_EVENT的作用
8.1.2 原始碼重要介面
8.1.3 主體格式
8.1.4 例項解析
8.1.5 生成時機 - 8.2 MAP_EVENT
8.2.1 MAP_EVENT的作用
8.2.2 原始碼重要介面
8.2.3 主體格式
8.2.4 例項解析
8.2.5 生成時機
第9節:重點Event WRITE_ROWS_EVENT/DELETE_ROWS_EVENT
- 9.1 WRITE_ROWS_EVENT
9.1.1 WRITE_ROWS_EVENT 的作用
9.1.2 原始碼重要介面
9.1.3 主體格式
9.1.4 例項解析
9.1.5 生成時機
9.1.6 修改資料不止一行的情況
9.1.7 寫入binlog cache時機 - 9.2 DELETE_ROWS_EVENT
9.2.1 DELETE_ROWS_EVENT 的作用
9.2.2 原始碼重要介面
9.2.3 主體格式
9.2.4 例項解析
第10節:重點Event UPDATE_ROWS_EVENT/XID_EVENT
- 10.1 UPDATE_ROWS_EVENT
10.1.1 UPDATE_ROWS_EVENT 的作用
10.1.2 原始碼重要介面
10.1.3 主體格式
10.1.4 例項解析 - 10.2 XID_EVENT
10.2.1 XID的作用
10.2.2 XID_EVENT的作用
10.2.3 原始碼重要介面
10.2.4 主體格式
10.2.5 例項解析
10.2.6 生成時機
第11節:引數binlog_row_image的影響
- 11.1 引數影響
- 11.2 過濾方式
- 11.3 DML Event中的標識
第12節:巧用Event發現問題
- 12.1 分析長期未提交的事務
- 12.2 分析大事務
- 12.3 分析binary log中Event的生成速度
- 12.4 分析每個表生成了多少DML Event
- 12.5 工具展示
第13節:binlog cache簡介
- 13.1 binlog cache總體圖解
- 13.2 使用binlog cache的大概流程
- 13.3 binlog_cache_size作用及其初始化
- 13.4 binlog cache臨時檔案的分配和使用
- 13.5 引數max_binlog_cache_size的作用
- 13.6 如何觀察到binlog cache臨時檔案的存在
第14節:事務Event的生成和寫入流程
- 14.1 整體流程圖解
- 14.2 刪除階段
- 14.3 提交階段
第15節:MySQL層事務提交流程簡析
- 15.1 引數設定和說明
- 15.2 總體流程圖
- 15.3 步驟解析第一階段
- 15.4 步驟解析第二階段
- 15.5 步驟解析第三階段
- 15.6 步驟解析第三階段
- 15.7 步驟解析第五階段
- 15.8 總結
第16節:基於WRITESET的並行複製方式
- 16.1 奇怪的last commit
- 16.2 Writeset是什麼
- 16.3 Writeset的生成
- 16.4 函式add_pke的大概流程
- 16.5 Writeset設定對last commit的處理方式
- 16.6 Writeset的歷史MAP
- 16.7 Writeset的並行複製對last commit的處理流程
- 16.8 WRITESET_SESSION的方式
- 16.9 關於binlog_transaction_dependency_history_size引數說明
- 16.10 沒有主鍵的情況
- 16.11 為什麼同一個session執行的事務也能生成同樣的last commit
第17節:主庫的DUMP執行緒
- 17.1 POSITION MODE模式和GTID AUTO_POSITION MODE模式的不同
17.1.1 POSITION模式
17.1.2 AUTO_POSITION模式 - 17.2 流程圖
- 17.3 步驟解析
- 17.4 總結
第18節:DUMP執行緒查詢和過濾GTID的基本演算法
- 18.1 環境假設
- 18.2 檢查從庫的GTID是否大於主庫的GTID
- 18.3 根據GTID檢查從庫需要的binary log是否已經被清理
- 18.4 實際掃描主庫的binary log,檢查從庫需要的binary log是否已經被清理
- 18.5 進行GTID的過濾,決定傳送哪些事務給從庫
第19節:從庫MTS多執行緒並行回放(一)
- 19.1 綜述
- 19.2 協調執行緒的分發機制圖解
- 19.3 步驟解析
- 19.4 並行回放判定的列子
第20節:從庫MTS多執行緒並行回放(二)
- 20.1 工作執行緒執行Event
- 20.2 MTS中檢查點中的重要概念
- 20.3 MTS中的檢查點的流程圖解
- 20.4 總結
第21節:MTS中GAP測試和引數slave_preserve_commit_order
- 21.1 MTS中GAP測試
- 21.2 引數slave_preserve_commit_order的影響
第22節:從庫的IO執行緒
- 22.1 IO執行緒的啟動流程圖
- 22.2 流程解析
第23節:從庫的SQL執行緒(MTS協調執行緒)和引數sql_slave_skip_counter
- 23.1 流程圖
- 23.2 重要步驟說明
- 23.3 各個Event大概做了什麼
23.3.1 GTID_EVENT
23.3.2 QUERY_EVENT
23.3.3 MAP_EVENT
23.3.4 DELETE_EVENT
23.3.5 XID_EVENT
第24節:從庫資料的查詢和引數slave_rows_search_algorithms
- 24.1 從一個列子出發
24.1.1 從庫普通索引的掃描方式
24.1.2 從庫主鍵唯一鍵的掃描方式
24.1.3 從庫沒有索引的掃描方式 - 24.2 確認查詢資料的方式(圖解)
- 24.3 ROW_LOOKUP_HASH_SCAN方式的資料查詢
- 24.4 slave_rows_search_algorithms引數總結
第25節:從庫的關閉和恢復流程
- 25.1 正常的STOP SLAVE流程
- 25.2 STOP SLAVE為什麼會慢
- 25.3 從庫啟動需要讀取的資訊
- 25.4 關於repository表的事務性
- 25.5 相關引數
- 25.6 恢復流程圖解
第26節:合理的從庫設定
- 26.1 合理設定圖解
- 26.2 單SQL執行緒
26.2.1 POSITION MODE模式
26.2.2 GTID AUTO_POSITION MODE模式 - 26.3 MTS
26.3.1 POSITION MODE模式
26.3.2 GTID AUTO_POSITION MODE模式 - 26.4 一個非安全設定導致問題的列子
- 26.5 總結
第27節:從庫Seconds_Behind_Master的計算方式
- 27.1 Seconds_Behind_Master計算的方式
- 27.2 影響Seconds_Behind_Master計算的因素
- 27.3 Seconds_Behind_Master計算方式總結
- 27.4 MTS中Seconds_Behind_Master計算誤差的測試
- 27.5 手動修改從庫系統時間,導致Seconds_Behind_Master為0
第28節:從庫Seconds_Behind_Master延遲總結
- 28.1 延遲情況總結
28.1.1 第一類
28.1.2 第二類 - 28.2 相關測試
28.2.1 Innodb層的行鎖造成的延遲
28.2.2 MySQL層的MDL LOCK造成的延遲 - 28.3 總結
第29節:執行緒簡介和MySQL除錯環境搭建
- 29.1 執行緒簡介
- 29.2 PID、LWP ID、Thread TID
- 29.3 如何將MySQL的執行緒和LWP ID進行對應
- 29.4 除錯環境搭建
- 29.5 使用除錯環境證明問題的一個列子
第30節:死鎖漫談
本節由楊奇龍編寫
- 30.1 前言
- 30.2 死鎖
- 30.3 MySQL的處理死鎖機制
30.3.1 死鎖檢測
30.3.2 如何處理死鎖 - 30.4 Innodb 的鎖型別
- 30.5 鎖資訊解析
- 30.6 Innodb 不同事務加鎖型別
- 30.7 如何檢視死鎖
- 30.8 如何儘可能避免死鎖
第31節:Innodb Buffer Pool的三種Page和連結串列
本節由王航威編寫
- 31.1 Innodb Buffer Pool 簡介
- 31.2 三種Page
31.2.1 Free Page
31.2.2 Clean Page
31.2.3 Dirty Page - 31.3 三種連結串列
31.3.1 LRU 連結串列
31.3.2 Flush 連結串列
31.3.3 Free 連結串列 - 31.4 LRU 連結串列和Flush連結串列的區別
- 31.5 觸發刷髒頁的條件
- 31.6 總結
第32節:利用performance_schema獲取造成死鎖的語句
本節由田興椿編寫
- 32.1 開啟相關統計的方法
- 32.2 根據死鎖資訊來獲取造成死鎖的語句
- 32.3 總結
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-2662899/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 深入理解MySQL主從原理專欄(32節) 釋出MySql
- 深入理解MySQL主從原理專欄 釋出MySql
- 第29節(正文免費部分):深入理解MySQL主從原理MySql
- mysql的主從複製 原理講解MySql
- 我的新書《深入理解MySQL主從原理》新書上架新書MySql
- 深入挖崛:mysql主從複製原理MySql
- redis 深入理解redis 主從複製原理Redis
- Mysql主從複製原理及搭建MySql
- 深入瞭解MySQL主從複製的原理MySql
- mysql 5.7 主從複製搭建及原理MySql
- 深入理解Kafka核心設計及原理(四):主題管理Kafka
- MySQL主從複製原理MySql
- 理解Mysql索引原理及特性MySql索引
- 深入理解 MySQL 索引底層原理MySql索引
- MySQL(13)---MYSQL主從複製原理MySql
- Mysql系列第十一講 深入瞭解連線查詢及原理MySql
- Mysql 主從同步原理簡析MySql主從同步
- MySQL主從複製原理及必備知識總結MySql
- 基於 Docker 的 MySQL 主從複製搭建及原理(真正弄懂)DockerMySql
- 光碟目錄隱藏原理及破解方法
- MySQL 主從複製原理不再難MySql
- 深入 Redis 主從複製的原理詳解Redis
- 深入詳解Redis 主從複製的原理!Redis
- redis原理及叢集主從配置Redis
- 深入理解HTTP快取機制及原理HTTP快取
- 【實操記錄】MySQL主從配置MySql
- mysql主從複製的理解和搭建MySql
- INDEX JAVA 各類名詞理解 & 知識點理解 目錄IndexJava
- MySQL 5.7的安裝及主從複製(主從同步)MySql主從同步
- MySQL 主從同步的基本原理MySql主從同步
- 從大神的角度深入理解MySQL,值得收藏~MySql
- MySQL主從配置及mysqldump備份MySql
- Redis replication主從複製原理及配置Redis
- DBMySQL主從同步原理及應用gccMySql主從同步GC
- 都在講Redis主從複製原理,我來講實踐總結Redis
- 深入Vue - 原始碼目錄及構建過程分析Vue原始碼
- 從程式設計師的角度深入理解MySQL程式設計師MySql
- jenkins修改主目錄Jenkins