關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
高性能MySQL(第4版) 讀者對(duì)象:《高性能MySQL(第4版)》不但適合數(shù)據(jù)庫(kù)管理員(DBA)閱讀,也適合開(kāi)發(fā)人員參考學(xué)習(xí)。不管是數(shù)據(jù)庫(kù)新手還是專家,相信都能從本書(shū)有所收獲。
《高性能MySQL(第3版)》是MySQL 領(lǐng)域的極佳之作,擁有廣泛的影響力。第4版更新了大量的內(nèi)容,全書(shū)共分為16章和6 個(gè)附錄,內(nèi)容涵蓋MySQL架構(gòu)和歷史,基準(zhǔn)測(cè)試和性能剖析,數(shù)據(jù)庫(kù)軟硬件性能優(yōu)化,復(fù)制、備份和恢復(fù),高可用與高可擴(kuò)展性,以及云端的MySQL和MySQL相關(guān)工具等方面的內(nèi)容。每一章都是相對(duì)獨(dú)立的主題,讀者可以有選擇性地單獨(dú)閱讀。《高性能MySQL(第4版)》不但適合數(shù)據(jù)庫(kù)管理員(DBA)閱讀,也適合開(kāi)發(fā)人員參考學(xué)習(xí)。不管是數(shù)據(jù)庫(kù)新手還是專家,相信都能從本書(shū)有所收獲。
Silvia Botros是Twilio的高級(jí)首席工程師。在SendGrid工作期間,她幫助部署和維護(hù)了各種MySQL數(shù)據(jù)存儲(chǔ),這些數(shù)據(jù)存儲(chǔ)支持郵件管道和SendGrid提供的其他產(chǎn)品,并推動(dòng)MySQL設(shè)計(jì)從開(kāi)始到生產(chǎn)。 Jeremy Tinley是Etsy的高級(jí)職員工程師,擁有超過(guò)20年的MySQL經(jīng)驗(yàn)。在他的職業(yè)生涯中,他管理了成千上萬(wàn)個(gè)MySQL實(shí)例,著眼于可用性、可靠性和運(yùn)營(yíng)效率。
寧海元有超過(guò)十年的數(shù)據(jù)庫(kù)管理經(jīng)驗(yàn),從最初的SQLServer 2000到Oracle再到MySQL,擅長(zhǎng)數(shù)據(jù)庫(kù)高可用架構(gòu)、性能優(yōu)化和故障診斷。目前專注于無(wú)線數(shù)據(jù)領(lǐng)域。網(wǎng)絡(luò)常用名NinGoo,周振興畢業(yè)于北京師范大學(xué)數(shù)學(xué)系,2009年開(kāi)始負(fù)責(zé)MySQL運(yùn)維管理工作,有豐富的MySQL性能優(yōu)化、Troubleshooting經(jīng)驗(yàn),對(duì)MySQL主要模塊的實(shí)現(xiàn)和原理有深入的研究,對(duì)系統(tǒng)架構(gòu)、高可用環(huán)境規(guī)劃都有深入理解。張新銘,云掣資深數(shù)據(jù)庫(kù)專家,網(wǎng)絡(luò)常用名俊達(dá),曾任淘寶、支付寶DBA,全程參與淘寶核心業(yè)務(wù)系統(tǒng)底層存儲(chǔ)系統(tǒng)改造,參與建設(shè)支付寶MySQL標(biāo)準(zhǔn)化運(yùn)維體系。對(duì)于數(shù)據(jù)庫(kù)體系結(jié)構(gòu)和運(yùn)作原理有深入的理解,擅長(zhǎng)大數(shù)據(jù)量和高訪問(wèn)量OLTP數(shù)據(jù)庫(kù)的設(shè)計(jì)和優(yōu)化。
序................................................................................. xxiii
前言............................................................................... xxv 本書(shū)第 4 版的致謝.............................................................. xxix 第 1 章 MySQL 架構(gòu)............................................................ 1 MySQL 的邏輯架構(gòu) ...................................................................................................... 1 連接管理與安全性 ................................................................................................ 2 優(yōu)化與執(zhí)行............................................................................................................ 2 并發(fā)控制 ....................................................................................................................... 3 讀寫鎖 ................................................................................................................... 3 鎖的粒度 ............................................................................................................... 4 事務(wù) .............................................................................................................................. 5 隔離級(jí)別 ............................................................................................................... 7 死鎖 ....................................................................................................................... 8 事務(wù)日志 ............................................................................................................... 9 MySQL 中的事務(wù) ................................................................................................ 10 多版本并發(fā)控制 .......................................................................................................... 12 復(fù)制 ............................................................................................................................ 13 數(shù)據(jù)文件結(jié)構(gòu) ............................................................................................................. 14 InnoDB 引擎 ............................................................................................................... 14 JSON 文檔支持 ................................................................................................... 15 數(shù)據(jù)字典的變化 .................................................................................................. 16 原子 DDL ............................................................................................................ 16 小結(jié) ............................................................................................................................ 16 第 2 章 可靠性工程世界中的監(jiān)控..............................................17 可靠性工程對(duì) DBA 團(tuán)隊(duì)的影響 ................................................................................. 18 定義服務(wù)水平目標(biāo) ...................................................................................................... 18 怎樣才能讓客戶滿意 ........................................................................................... 19 用什么來(lái)度量 ............................................................................................................. 20 定義 SLI 和 SLO ................................................................................................. 20 監(jiān)控解決方案 ...................................................................................................... 21 監(jiān)控可用性.......................................................................................................... 22 監(jiān)控查詢延遲 ...................................................................................................... 24 監(jiān)控報(bào)錯(cuò) ............................................................................................................. 24 主動(dòng)監(jiān)控 ............................................................................................................. 25 度量長(zhǎng)期性能 ............................................................................................................. 31 了解業(yè)務(wù)節(jié)奏 ...................................................................................................... 31 有效地跟蹤指標(biāo) .................................................................................................. 32 使用監(jiān)控工具檢查性能 ....................................................................................... 33 使用 SLO 來(lái)指導(dǎo)整體架構(gòu) .................................................................................. 34 小結(jié) ............................................................................................................................ 34 第 3 章 Performance Schema........................................... 35 Performance Schema 介紹 ........................................................................................... 35 插樁元件 ............................................................................................................. 36 消費(fèi)者表的組織 .................................................................................................. 37 資源消耗 ............................................................................................................. 39 局限性 ................................................................................................................. 39 sys Schema .......................................................................................................... 40 理解線程 ............................................................................................................. 40 配置 ............................................................................................................................ 41 啟用或禁用 Performance Schema ........................................................................ 42 啟用或禁用插樁 .................................................................................................. 42 啟用或禁用消費(fèi)者表 ........................................................................................... 43 優(yōu)化特定對(duì)象的監(jiān)控 ........................................................................................... 44 優(yōu)化線程的監(jiān)控 .................................................................................................. 45 調(diào)整 Performance Schema 的內(nèi)存大小 ................................................................ 46 默認(rèn)值 ................................................................................................................. 46 使用 Performance Schema ........................................................................................... 46 檢查 SQL 語(yǔ)句 .................................................................................................... 46 檢查讀寫性能 ...................................................................................................... 54 檢查元數(shù)據(jù)鎖 ...................................................................................................... 56 檢查內(nèi)存使用情況 .............................................................................................. 56 檢查變量 ............................................................................................................. 59 檢查最常見(jiàn)的錯(cuò)誤 .............................................................................................. 62 檢查 Performance Schema 自身 ........................................................................... 63 小結(jié) ............................................................................................................................ 65 第 4 章 操作系統(tǒng)和硬件優(yōu)化.................................................. 66 什么限制了 MySQL 的性能 ........................................................................................ 66 如何為 MySQL 選擇 CPU ........................................................................................... 67 平衡內(nèi)存和磁盤資源 .................................................................................................. 67 緩存、讀取和寫入 .............................................................................................. 67 你的工作集是什么 .............................................................................................. 68 固態(tài)存儲(chǔ) ..................................................................................................................... 68 閃存概述 ............................................................................................................. 69 垃圾收集 ............................................................................................................. 69 RAID 性能優(yōu)化 ........................................................................................................... 70 RAID 故障、恢復(fù)和監(jiān)控 .................................................................................... 72 RAID 配置和緩存 ............................................................................................... 73 網(wǎng)絡(luò)配置 ..................................................................................................................... 75 選擇文件系統(tǒng) ............................................................................................................. 77 選擇磁盤隊(duì)列調(diào)度器 ........................................................................................... 79 內(nèi)存和交換.......................................................................................................... 79 操作系統(tǒng)狀態(tài) ...................................................................................................... 81 其他有用的工具 .................................................................................................. 84 小結(jié) ............................................................................................................................ 84 第 5 章 優(yōu)化服務(wù)器設(shè)置....................................................... 86 MySQL 的配置是如何工作的 ..................................................................................... 87 語(yǔ)法、作用域和動(dòng)態(tài)性 ....................................................................................... 88 持久化系統(tǒng)變量 .................................................................................................. 89 設(shè)置變量的副作用 .............................................................................................. 89 規(guī)劃變量的更改 .................................................................................................. 90 什么不該做 ................................................................................................................. 91 創(chuàng)建 MySQL 配置文件 ............................................................................................... 92 最小化配置.......................................................................................................... 92 檢查 MySQL 服務(wù)器的狀態(tài)變量 ......................................................................... 94 配置內(nèi)存使用 ............................................................................................................. 94 每個(gè)連接的內(nèi)存需求 ........................................................................................... 94 為操作系統(tǒng)保留內(nèi)存 ........................................................................................... 95 InnoDB 緩沖池 .................................................................................................... 95 線程緩存 ............................................................................................................. 96 配置 MySQL 的 I/O 行為 ............................................................................................ 97 InnoDB 事務(wù)日志 ................................................................................................ 98 日志緩沖區(qū).......................................................................................................... 98 InnoDB 表空間 .................................................................................................. 100 其他 I/O 配置選項(xiàng) ............................................................................................. 103 配置 MySQL 并發(fā) ..................................................................................................... 103 安全設(shè)置 ................................................................................................................... 104 高級(jí) InnoDB 設(shè)置 ..................................................................................................... 106 小結(jié) .......................................................................................................................... 108 第 6 章 schema 設(shè)計(jì)與管理................................................109 選擇優(yōu)化的數(shù)據(jù)類型 ................................................................................................ 109 整數(shù)類型 ............................................................................................................111 實(shí)數(shù)類型 ............................................................................................................111 字符串類型........................................................................................................ 112 日期和時(shí)間類型 ................................................................................................ 117 位壓縮數(shù)據(jù)類型 ................................................................................................ 119 JSON 數(shù)據(jù)類型 ................................................................................................. 121 選擇標(biāo)識(shí)符........................................................................................................ 124 特殊數(shù)據(jù)類型 .................................................................................................... 126 MySQL schema 設(shè)計(jì)中的陷阱 .................................................................................. 127 太多的列 ........................................................................................................... 127 太多的聯(lián)接........................................................................................................ 127 全能的枚舉........................................................................................................ 127 變相的枚舉........................................................................................................ 128 NULL 不是虛擬值............................................................................................. 128 schema 管理 .............................................................................................................. 128 作為數(shù)據(jù)存儲(chǔ)平臺(tái)一部分的 schema 管理 ......................................................... 129 小結(jié) .......................................................................................................................... 135 第 7 章 創(chuàng)建高性能的索引....................................................136 索引基礎(chǔ) ................................................................................................................... 136 索引的類型........................................................................................................ 137 使用索引的優(yōu)點(diǎn) ................................................................................................ 141 高性能的索引策略 .................................................................................................... 142 前綴索引和索引的選擇性 ................................................................................. 142 多列索引 ........................................................................................................... 145 選擇合適的索引列順序 ..................................................................................... 147 聚簇索引 ........................................................................................................... 150 覆蓋索引 ........................................................................................................... 157 使用索引掃描來(lái)做排序 ..................................................................................... 159 冗余和重復(fù)索引 ................................................................................................ 161 未使用的索引 .................................................................................................... 164 維護(hù)索引和表 ........................................................................................................... 164 找到并修復(fù)損壞的表 ......................................................................................... 165 更新索引統(tǒng)計(jì)信息 ............................................................................................ 165 減少索引和數(shù)據(jù)的碎片 ..................................................................................... 167 小結(jié) .......................................................................................................................... 168 第 8 章 查詢性能優(yōu)化.........................................................170 為什么查詢速度會(huì)慢 ................................................................................................ 170 慢查詢基礎(chǔ) :優(yōu)化數(shù)據(jù)訪問(wèn) ..................................................................................... 171 是否向數(shù)據(jù)庫(kù)請(qǐng)求了不需要的數(shù)據(jù) .................................................................. 171 MySQL 是否在掃描額外的記錄 ........................................................................ 173 重構(gòu)查詢的方式 ........................................................................................................ 177 一個(gè)復(fù)雜查詢還是多個(gè)簡(jiǎn)單查詢 ...................................................................... 177 切分查詢 ........................................................................................................... 178 分解聯(lián)接查詢 .................................................................................................... 178 查詢執(zhí)行的基礎(chǔ) ........................................................................................................ 179 MySQL 的客戶端 / 服務(wù)器通信協(xié)議 ................................................................. 180 查詢狀態(tài) ........................................................................................................... 182 查詢優(yōu)化處理 .................................................................................................... 183 查詢執(zhí)行引擎 .................................................................................................... 196 將結(jié)果返回給客戶端 ......................................................................................... 197 MySQL 查詢優(yōu)化器的局限性 ................................................................................... 197 UNION 的限制 .................................................................................................. 197 等值傳遞 ........................................................................................................... 198 并行執(zhí)行 ........................................................................................................... 198 在同一個(gè)表中查詢和更新 ................................................................................. 198 優(yōu)化特定類型的查詢 ................................................................................................ 199 優(yōu)化 COUNT() 查詢 .......................................................................................... 199 優(yōu)化聯(lián)接查詢 .................................................................................................... 201 使用 WITH ROLLUP 優(yōu)化 GROUP BY ............................................................ 201 優(yōu)化 LIMIT 和 OFFSET 子句 ............................................................................ 202 優(yōu)化 SQL_CALC_FOUND_ROWS ................................................................... 203 優(yōu)化 UNION 查詢 ............................................................................................. 204 小結(jié) .......................................................................................................................... 204 第 9 章 復(fù)制....................................................................205 復(fù)制概述 ................................................................................................................... 205 復(fù)制如何工作 .................................................................................................... 207 復(fù)制原理 ................................................................................................................... 208 選擇復(fù)制格式 .................................................................................................... 208 全局事務(wù)標(biāo)識(shí)符 ................................................................................................ 208 崩潰后的復(fù)制安全 ............................................................................................ 210 延遲復(fù)制 ........................................................................................................... 210 多線程復(fù)制........................................................................................................ 211 半同步復(fù)制........................................................................................................ 214 復(fù)制過(guò)濾器........................................................................................................ 214 復(fù)制切換 ................................................................................................................... 216 計(jì)劃內(nèi)切換........................................................................................................ 216 計(jì)劃外切換........................................................................................................ 217 切換時(shí)的權(quán)衡 .................................................................................................... 217 復(fù)制拓?fù)?................................................................................................................... 217 主動(dòng) / 被動(dòng)模式 ................................................................................................. 218 主動(dòng) / 只讀池模式 ............................................................................................. 219 不推薦的一些拓?fù)浼軜?gòu) ..................................................................................... 220 復(fù)制管理和維護(hù) ........................................................................................................ 223 復(fù)制監(jiān)控 ........................................................................................................... 223 觀測(cè)復(fù)制延遲 .................................................................................................... 224 確定副本數(shù)據(jù)的一致性 ..................................................................................... 225 復(fù)制問(wèn)題和解決方案 ................................................................................................ 226 源端二進(jìn)制日志損壞 ......................................................................................... 226 非唯一的服務(wù)器 ID ........................................................................................... 226 未配置服務(wù)器 ID ............................................................................................... 227 臨時(shí)表丟失........................................................................................................ 227 沒(méi)有復(fù)制所有變更 ............................................................................................ 227 復(fù)制延遲過(guò)大 .................................................................................................... 228 來(lái)自源服務(wù)器的超大數(shù)據(jù)包 ............................................................................. 229 磁盤空間耗盡 .................................................................................................... 229 復(fù)制的限制........................................................................................................ 229 小結(jié) .......................................................................................................................... 230 第 10 章 備份與恢復(fù)..........................................................231 為什么要備份 ........................................................................................................... 232 定義恢復(fù)需求 ........................................................................................................... 233 設(shè)計(jì) MySQL 備份方案 ............................................................................................. 234 在線備份還是離線備份 ..................................................................................... 235 邏輯備份還是裸文件備份 ................................................................................. 236 備份什么 ........................................................................................................... 238 增量備份和差異備份 ......................................................................................... 239 復(fù)制 ................................................................................................................... 240 管理和備份二進(jìn)制日志............................................................................................. 241 備份和恢復(fù)工具 ........................................................................................................ 241 MySQL Enterprise Backup ................................................................................ 241 Percona XtraBackup .......................................................................................... 242 mydumper .......................................................................................................... 242 mysqldump ........................................................................................................ 242 備份數(shù)據(jù) ................................................................................................................... 242 邏輯 SQL 備份 .................................................................................................. 242 文件系統(tǒng)快照 .................................................................................................... 244 Percona XtraBackup .......................................................................................... 249 從備份中恢復(fù)數(shù)據(jù) .................................................................................................... 252 恢復(fù)邏輯備份 .................................................................................................... 253 從快照中恢復(fù) .................................................................................................... 254 使用 Percona XtraBackup 進(jìn)行恢復(fù) .................................................................. 255 原始文件恢復(fù)后啟動(dòng) MySQL ........................................................................... 256 小結(jié) .......................................................................................................................... 256 第 11 章 擴(kuò)展 MySQL.......................................................258 什么是可擴(kuò)展性 ........................................................................................................ 258 讀限制與寫限制工作負(fù)載 ......................................................................................... 260 理解工作負(fù)載 .................................................................................................... 260 讀限制工作負(fù)載 ................................................................................................ 261 寫限制工作負(fù)載 ................................................................................................ 261 功能拆分 ................................................................................................................... 262 使用讀池?cái)U(kuò)展讀 ........................................................................................................ 262 管理讀池的配置 ................................................................................................ 264 讀池健康檢查 .................................................................................................... 265 選擇負(fù)載均衡器算法 ......................................................................................... 266 排隊(duì)機(jī)制 ................................................................................................................... 267 使用分片擴(kuò)展寫 ........................................................................................................ 268 選擇切分方案 .................................................................................................... 269 多個(gè)分片鍵........................................................................................................ 270 跨分片查詢........................................................................................................ 271 Vitess ................................................................................................................. 272 ProxySQL .......................................................................................................... 275 小結(jié) .......................................................................................................................... 279 第 12 章 云端的 MySQL....................................................280 托管 MySQL ............................................................................................................. 280 Amazon Aurora for MySQL ............................................................................... 281 GCP Cloud SQL ................................................................................................. 283 虛擬機(jī)上的 MySQL .................................................................................................. 284 云上的機(jī)器類型 ................................................................................................ 284 選擇正確的機(jī)器類型 ......................................................................................... 285 選擇正確的磁盤類型 ......................................................................................... 286 額外的建議........................................................................................................ 287 小結(jié) .......................................................................................................................... 289 第 13 章 MySQL 的合規(guī)性.................................................291 什么是合規(guī)性 ........................................................................................................... 291 服務(wù)組織控制類型 2.......................................................................................... 292 薩班斯 - 奧克斯利法案 ..................................................................................... 292 支付卡行業(yè)數(shù)據(jù)安全標(biāo)準(zhǔn) ................................................................................. 292 健康保險(xiǎn)可攜帶性和責(zé)任法案 .......................................................................... 292 聯(lián)邦風(fēng)險(xiǎn)和授權(quán)管理計(jì)劃 ................................................................................. 293 通用數(shù)據(jù)保護(hù)條例 ............................................................................................ 293 Schrems II ......................................................................................................... 293 建立合規(guī)控制體系 .................................................................................................... 294 機(jī)密信息管理 .................................................................................................... 294 角色與數(shù)據(jù)分離 ................................................................................................ 297 跟蹤變更 ........................................................................................................... 297 備份和恢復(fù)過(guò)程 ................................................................................................ 302 小結(jié) .......................................................................................................................... 304 附錄 A 升級(jí) MySQL.........................................................305 附錄 B Kubernetes 上的 MySQL.......................................310
你還可能感興趣
我要評(píng)論
|