劍指MySQL——架構(gòu)、調(diào)優(yōu)與運(yùn)維
定 價(jià):128 元
叢書(shū)名:程序員硬核技術(shù)叢書(shū)
- 作者:尚硅谷教育
- 出版時(shí)間:2024/6/1
- ISBN:9787121479403
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.132.3
- 頁(yè)碼:452
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
MySQL是風(fēng)靡全球的數(shù)據(jù)庫(kù)管理系統(tǒng),被廣泛應(yīng)用于互聯(lián)網(wǎng)場(chǎng)景。作為一名開(kāi)發(fā)人員,掌握MySQL是必備技能。本書(shū)從MySQL的安裝與使用開(kāi)始,逐步深入。首先宏觀地介紹MySQL的目錄結(jié)構(gòu)、用戶與權(quán)限管理、邏輯架構(gòu)、存儲(chǔ)引擎、InnoDB存儲(chǔ)引擎中的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)等;然后介紹MySQL中的索引、性能分析工具的使用、索引優(yōu)化、數(shù)據(jù)庫(kù)的設(shè)計(jì)規(guī)范、數(shù)據(jù)庫(kù)調(diào)優(yōu)等;接著介紹MySQL中的事務(wù)和鎖機(jī)制,以及MySQL如何保證事務(wù)的特性,涉及redo日志、undo日志、MVCC及各種鎖的細(xì)節(jié)等知識(shí);最后介紹數(shù)據(jù)庫(kù)軟硬件的性能優(yōu)化,包括主從復(fù)制、數(shù)據(jù)庫(kù)備份與恢復(fù)等。本書(shū)內(nèi)容全面細(xì)致,講解深入淺出,書(shū)中穿插了大量案例,做到了理論和實(shí)踐相結(jié)合。本書(shū)主要以MySQL 8.0以后的版本為例進(jìn)行講解,同時(shí)融合了MySQL 8.0以前的版本進(jìn)行比較,適用性更強(qiáng)。無(wú)論你是致力于構(gòu)建和管理高性能、高可用性的數(shù)據(jù)庫(kù)系統(tǒng)的開(kāi)發(fā)人員,還是數(shù)據(jù)庫(kù)管理員,都能從本書(shū)中有所收獲。
尚硅谷教育是一家專業(yè)的IT教育培訓(xùn)機(jī)構(gòu),開(kāi)設(shè)了JavaEE、大數(shù)據(jù)、HTML5前端等多門學(xué)科,在互聯(lián)網(wǎng)上發(fā)布的JavaEE、大數(shù)據(jù)、HTML5前端、區(qū)塊鏈、C語(yǔ)言、Python等技術(shù)視頻教程廣受贊譽(yù)。
目錄
第1章 Linux平臺(tái)下MySQL的安裝與使用 1
1.1 MySQL概述 1
1.1.1 MySQL簡(jiǎn)介 1
1.1.2 MySQL的發(fā)展歷程 2
1.1.3 MySQL高手是如何練就的 3
1.2 Linux平臺(tái)下MySQL的安裝 3
1.2.1 MySQL的四大版本 3
1.2.2 下載MySQL指定版本 3
1.2.3 Linux平臺(tái)下安裝MySQL的
三種方式 5
1.2.4 安裝MySQL前的必要操作 6
1.2.5 CentOS 7下MySQL的安裝
過(guò)程 7
1.3 卸載MySQL 10
1.4 登錄MySQL 10
1.4.1 首次登錄 10
1.4.2 修改密碼 11
1.4.3 設(shè)置遠(yuǎn)程登錄 11
1.5 MySQL 8.0的密碼強(qiáng)度評(píng)估 14
1.5.1 MySQL不同版本的密碼設(shè)置 14
1.5.2 MySQL 8.0的密碼安全策略 15
1.6 字符集的設(shè)置 17
1.6.1 查看字符集 17
1.6.2 查看校對(duì)規(guī)則 18
1.6.3 各級(jí)別的字符集和校對(duì)規(guī)則 19
1.6.4 MySQL 5.7和MySQL 8.0中數(shù)據(jù)
庫(kù)級(jí)別默認(rèn)字符集的變化 22
1.7 SQL語(yǔ)句中的字母大小寫(xiě)規(guī)范 23
1.7.1 Windows和Linux平臺(tái)下字母
大小寫(xiě)規(guī)范的區(qū)別 23
1.7.2 Linux平臺(tái)下字母大小寫(xiě)規(guī)范
設(shè)置 23
1.8 sql_mode 24
1.8.1 sql_mode簡(jiǎn)介 24
1.8.2 寬松模式與嚴(yán)格模式對(duì)比 24
1.8.3 模式的查看和設(shè)置 25
1.9 小結(jié) 26
第2章 MySQL的目錄結(jié)構(gòu) 27
2.1 MySQL的主要目錄 27
2.1.1 MySQL的數(shù)據(jù)目錄 27
2.1.2 MySQL的數(shù)據(jù)庫(kù)命令目錄 27
2.2 數(shù)據(jù)庫(kù)和文件系統(tǒng)的關(guān)系 29
2.2.1 查看系統(tǒng)數(shù)據(jù)庫(kù) 29
2.2.2 數(shù)據(jù)庫(kù)在文件系統(tǒng)中的表示 29
2.2.3 表在文件系統(tǒng)中的表示 30
2.2.4 視圖在文件系統(tǒng)中的表示 33
2.2.5 其他文件 33
2.3 小結(jié) 34
第3章 用戶與權(quán)限管理 35
3.1 權(quán)限表 35
3.1.1 user表 35
3.1.2 db表 37
3.1.3 tables_priv表和
columns_priv表 38
3.1.4 procs_priv表 39
3.2 用戶管理 40
3.2.1 登錄MySQL服務(wù)器 40
3.2.2 創(chuàng)建用戶 40
3.2.3 刪除用戶 41
3.2.4 修改用戶信息 42
3.2.5 修改當(dāng)前用戶的密碼 42
3.2.6 修改其他普通用戶的密碼 43
3.2.7 MySQL 8.0密碼管理 43
3.3 權(quán)限管理 45
3.3.1 權(quán)限列表 45
3.3.2 授予權(quán)限的原則 46
3.3.3 授予權(quán)限的方式 46
3.3.4 查看權(quán)限 47
3.3.5 回收權(quán)限 50
3.4 訪問(wèn)控制 50
3.4.1 連接核實(shí)階段 50
3.4.2 請(qǐng)求核實(shí)階段 50
3.5 角色管理 51
3.5.1 角色概述 51
3.5.2 創(chuàng)建角色 52
3.5.3 給角色授權(quán) 52
3.5.4 查看角色擁有的權(quán)限 53
3.5.5 回收角色擁有的權(quán)限 53
3.5.6 刪除角色 54
3.5.7 賦予用戶角色 54
3.5.8 激活角色 55
3.5.9 撤銷用戶被賦予的角色 55
3.5.10 設(shè)置強(qiáng)制角色 56
3.6 配置文件的使用 57
3.6.1 配置文件的格式 57
3.6.2 啟動(dòng)命令與選項(xiàng)組 58
3.6.3 特定MySQL版本的專用
選項(xiàng)組 59
3.6.4 同一配置文件中多個(gè)選項(xiàng)組的
優(yōu)先級(jí) 59
3.6.5 命令行和配置文件中啟動(dòng)選項(xiàng)
的區(qū)別 59
3.7 系統(tǒng)變量 59
3.7.1 系統(tǒng)變量簡(jiǎn)介 59
3.7.2 查看系統(tǒng)變量 59
3.7.3 通過(guò)啟動(dòng)選項(xiàng)設(shè)置系統(tǒng)變量 60
3.7.4 在服務(wù)器端程序運(yùn)行過(guò)程中設(shè)置系統(tǒng)變量 61
3.7.5 啟動(dòng)選項(xiàng)和系統(tǒng)變量之間的
關(guān)系 63
3.8 小結(jié) 63
第4章 邏輯架構(gòu) 64
4.1 邏輯架構(gòu)剖析 64
4.1.1 MySQL的邏輯架構(gòu) 64
4.1.2 客戶端連接器 66
4.1.3 連接層 66
4.1.4 服務(wù)層 66
4.1.5 存儲(chǔ)引擎層 67
4.1.6 存儲(chǔ)層 68
4.2 SQL語(yǔ)句的執(zhí)行流程 68
4.3 MySQL 5.7中的查詢緩存設(shè)置 73
4.4 數(shù)據(jù)庫(kù)緩沖池 75
4.4.1 緩沖池和查詢緩存 75
4.4.2 查看緩沖池的大小 76
4.4.3 將數(shù)據(jù)加載到緩沖池中 77
4.4.4 緩沖池中的free鏈表 78
4.4.5 緩沖池中的LRU鏈表 79
4.4.6 緩沖池中的flush鏈表 81
4.5 小結(jié) 82
第5章 存儲(chǔ)引擎 83
5.1 存儲(chǔ)引擎的相關(guān)操作 83
5.1.1 查看存儲(chǔ)引擎 83
5.1.2 設(shè)置系統(tǒng)默認(rèn)的存儲(chǔ)引擎 85
5.1.3 設(shè)置表的存儲(chǔ)引擎 85
5.2 主要存儲(chǔ)引擎介紹 86
5.2.1 InnoDB存儲(chǔ)引擎:事務(wù)型存儲(chǔ)
引擎 86
5.2.2 MyISAM存儲(chǔ)引擎:主要的非事務(wù)處理存儲(chǔ)引擎 86
5.2.3 ARCHIVE存儲(chǔ)引擎:數(shù)據(jù)
存檔 86
5.2.4 BLACKHOLE存儲(chǔ)引擎:丟棄寫(xiě)操作 87
5.2.5 CSV存儲(chǔ)引擎:存儲(chǔ)CSV
文件 87
5.2.6 MEMORY存儲(chǔ)引擎:內(nèi)存表 88
5.2.7 其他存儲(chǔ)引擎 89
5.2.8 常用存儲(chǔ)引擎對(duì)比 89
5.3 小結(jié) 90
第6章 InnoDB存儲(chǔ)引擎中的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu) 91
6.1 數(shù)據(jù)庫(kù)的存儲(chǔ)架構(gòu) 91
6.2 InnoDB存儲(chǔ)引擎中的行格式 91
6.2.1 查看和修改行格式 91
6.2.2 完整的記錄信息 92
6.2.3 行溢出 93
6.2.4 REDUNDANT行格式 94
6.2.5 COMPACT行格式 94
6.2.6 DYNAMIC和COMPRESSED
行格式 95
6.3 頁(yè)的結(jié)構(gòu) 96
6.3.1 頁(yè)的組成部分 96
6.3.2 從頁(yè)的角度看B+樹(shù)是如何進(jìn)行
查詢的 99
6.4 區(qū)和段 99
6.4.1 區(qū) 99
6.4.2 段 100
6.5 表空間 100
6.6 小結(jié) 102
第7章 索引 103
7.1 索引概述 103
7.2 合理選擇索引的數(shù)據(jù)結(jié)構(gòu) 104
7.2.1 二叉搜索樹(shù) 104
7.2.2 AVL樹(shù) 105
7.2.3 B樹(shù) 105
7.2.4 B+樹(shù) 106
7.2.5 哈希結(jié)構(gòu) 108
7.3 索引分類 109
7.3.1 按功能邏輯分類 110
7.3.2 按物理實(shí)現(xiàn)方式分類 111
7.3.3 按索引字段個(gè)數(shù)分類 112
7.4 索引的創(chuàng)建與刪除 113
7.4.1 創(chuàng)建索引 113
7.4.2 刪除索引 123
7.5 InnoDB和MyISAM存儲(chǔ)引擎中的索引
方案 126
7.5.1 InnoDB存儲(chǔ)引擎中的索引
方案 126
7.5.2 MyISAM存儲(chǔ)引擎中的索引
方案 128
7.5.3 InnoDB和MyISAM存儲(chǔ)引擎中
的索引方案對(duì)比 129
7.6 MySQL 8.0的新特性 130
7.6.1 支持降序索引 130
7.6.2 支持隱藏索引 132
7.7 適合創(chuàng)建索引的場(chǎng)景 135
7.7.1 數(shù)據(jù)準(zhǔn)備 135
7.7.2 查詢操作的條件字段 137
7.7.3 分組和排序的字段 138
7.7.4 更新和刪除操作的條件字段 141
7.7.5 去重的字段 142
7.7.6 多表連接查詢 142
7.7.7 數(shù)據(jù)類型小的列 143
7.8 不適合創(chuàng)建索引的場(chǎng)景 144
7.8.1 WHERE條件用不到的字段 144
7.8.2 數(shù)據(jù)量小的表 144
7.8.3 有大量重復(fù)數(shù)據(jù)的字段 145
7.8.4 索引不要冗余或重復(fù)創(chuàng)建 147
7.8.5 其他不適合創(chuàng)建索引的場(chǎng)景 147
7.9 小結(jié) 148
第8章 性能分析工具的使用 149
8.1 數(shù)據(jù)庫(kù)性能調(diào)優(yōu)步驟 149
8.2 查看系統(tǒng)狀態(tài)信息 150
8.3 查看SQL查詢成本 151
8.4 定位執(zhí)行時(shí)間長(zhǎng)的SQL語(yǔ)句 153
8.4.1 開(kāi)啟慢查詢?nèi)罩?153
8.4.2 測(cè)試及分析 155
8.4.3 慢查詢?nèi)罩痉治龉ぞ?156
8.4.4 關(guān)閉慢查詢?nèi)罩?157
8.4.5 刪除慢查詢?nèi)罩?157
8.5 查看SQL語(yǔ)句的具體查詢成本 158
8.6 分析查詢語(yǔ)句:EXPLAIN 163
8.6.1 說(shuō)明 163
8.6.2 EXPLAIN結(jié)果之id 164
8.6.3 EXPLAIN結(jié)果之select_type 166
8.6.4 EXPLAIN結(jié)果之table 172
8.6.5 EXPLAIN結(jié)果之partitions 172
8.6.6 EXPLAIN結(jié)果之type 173
8.6.7 EXPLAIN結(jié)果之possible_keys
和key 177
8.6.8 EXPLAIN結(jié)果之key_len 178
8.6.9 EXPLAIN結(jié)果之ref 179
8.6.10 EXPLAIN結(jié)果之rows 181
8.6.11 EXPLAIN結(jié)果之filtered 181
8.6.12 EXPLAIN結(jié)果之Extra 182
8.6.13 JSON格式的執(zhí)行計(jì)劃 183
8.6.14 執(zhí)行計(jì)劃的擴(kuò)展信息 185
8.7 小結(jié) 185
第9章 索引優(yōu)化 186
9.1 數(shù)據(jù)準(zhǔn)備 186
9.2 索引優(yōu)化原則 188
9.2.1 全值匹配法則 188
9.2.2 最左前綴法則 188
9.2.3 優(yōu)先考慮覆蓋索引 190
9.3 索引失效的場(chǎng)景 191
9.3.1 查詢條件中包含函數(shù)、計(jì)算導(dǎo)致
索引失效 191
9.3.2 范圍查詢條件右邊的列不能被
使用導(dǎo)致索引失效 194
9.3.3 不等值查詢導(dǎo)致索引失效 195
9.3.4 判空條件對(duì)索引的影響 196
9.3.5 LIKE以通配符“%”開(kāi)頭導(dǎo)致
索引失效 196
9.3.6 數(shù)據(jù)類型轉(zhuǎn)換導(dǎo)致索引失效 197
9.3.7 OR關(guān)鍵字導(dǎo)致索引失效 198
9.4 關(guān)聯(lián)查詢優(yōu)化 199
9.4.1 數(shù)據(jù)準(zhǔn)備 199
9.4.2 采用左連接:LEFT JOIN 200
9.4.3 采用內(nèi)連接:INNER JOIN 203
9.4.4 JOIN語(yǔ)句的原理 206
9.5 排序優(yōu)化 210
9.5.1 ORDER BY的索引規(guī)則 210
9.5.2 排序方式比較 214
9.5.3 影響排序效率的兩個(gè)系統(tǒng)
變量 217
9.6 索引下推 217
9.6.1 索引下推概述 217
9.6.2 索引下推案例 221
9.7 B+樹(shù)索引的優(yōu)化 223
9.7.1 自適應(yīng)哈希索引 223
9.7.2 覆蓋索引 224
9.8 其他索引優(yōu)化場(chǎng)景 225
9.8.1 子查詢優(yōu)化 225
9.8.2 分頁(yè)查詢優(yōu)化 228
9.8.3 索引提示 229
9.8.4 前綴索引 231
9.9 常用SQL編寫(xiě)建議 233
9.10 小結(jié) 235
第10章 數(shù)據(jù)庫(kù)的設(shè)計(jì)規(guī)范 236
10.1 范式 236
10.1.1 范式簡(jiǎn)介 236
10.1.2 范式分類 236
10.1.3 數(shù)據(jù)表中的鍵 237
10.1.4 第一范式 238
10.1.5 第二范式 238
10.1.6 第三范式 239
10.1.7 巴斯-科德范式 240
10.1.8 第四范式 240
10.2 反范式化 241
10.2.1 反范式化概述 241
10.2.2 反范式化應(yīng)用舉例 241
10.2.3 反范式化的使用建議 246
10.3 ER模型 246
10.3.1 ER模型中的要素 247
10.3.2 ER模型中實(shí)體的屬性 248
10.3.3 把ER模型轉(zhuǎn)換為數(shù)據(jù)表 249
10.3.4 把實(shí)體轉(zhuǎn)換為數(shù)據(jù)表 249
10.3.5 把多對(duì)多的關(guān)系轉(zhuǎn)換為
數(shù)據(jù)表 252
10.3.6 通過(guò)外鍵來(lái)表達(dá)一對(duì)多的
關(guān)系 252
10.3.7 把屬性轉(zhuǎn)換為表中的字段 252
10.4 數(shù)據(jù)庫(kù)對(duì)象的設(shè)計(jì)規(guī)范 253
10.4.1 庫(kù)的設(shè)計(jì)規(guī)范 253
10.4.2 表的設(shè)計(jì)規(guī)范 253
10.4.3 索引的設(shè)計(jì)規(guī)范 254
10.5 PowerDesigner的使用 255
10.6 小結(jié) 261
第11章 數(shù)據(jù)庫(kù)調(diào)優(yōu) 262
11.1 數(shù)據(jù)庫(kù)調(diào)優(yōu)的措施 262
11.1.1 如何解決定位問(wèn)題 262
11.1.2 數(shù)據(jù)庫(kù)調(diào)優(yōu)的維度和步驟 262
11.2 優(yōu)化MySQL服務(wù)器 264
11.2.1 優(yōu)化服務(wù)器硬件 264
11.2.2 優(yōu)化MySQL服務(wù)的配置
參數(shù) 264
11.3 優(yōu)化數(shù)據(jù)庫(kù)結(jié)構(gòu) 268
11.3.1 拆分表:冷、熱數(shù)據(jù)分離 268
11.3.2 增加中間表或冗余字段 269
11.3.3 優(yōu)化字段的數(shù)據(jù)類型 270
11.3.4 優(yōu)化插入記錄的速度 277
11.3.5 使用非空約束 279
11.3.6 分析表、檢查表和優(yōu)化表 279
11.4 大表優(yōu)化 284
11.4.1 讀寫(xiě)分離 284
11.4.2 垂直拆分 285
11.4.3 水平拆分 286
11.5 其他調(diào)優(yōu)策略 287
11.5.1 服務(wù)器語(yǔ)句超時(shí)處理 287
11.5.2 創(chuàng)建全局通用表空間 287
11.5.3 臨時(shí)表性能優(yōu)化 288
11.6 小結(jié) 289
第12章 數(shù)據(jù)庫(kù)事務(wù) 291
12.1 事務(wù)概述 291
12.1.1 事務(wù)的ACID特性 291
12.1.2 事務(wù)的狀態(tài) 292
12.2 事務(wù)的基本使用 293
12.2.1 數(shù)據(jù)準(zhǔn)備 293
12.2.2 事務(wù)的基本語(yǔ)法 294
12.2.3 隱式提交數(shù)據(jù)庫(kù)事務(wù)的情況 296
12.2.4 事務(wù)提交和回滾案例 297
12.2.5 不支持事務(wù)的表無(wú)法回滾
事務(wù) 299
12.2.6 事務(wù)保存點(diǎn) 300
12.3 事務(wù)隔離級(jí)別 301
12.3.1 數(shù)據(jù)庫(kù)并發(fā)問(wèn)題 301
12.3.2 事務(wù)中的4種隔離級(jí)別 303
12.3.3 設(shè)置隔離級(jí)別 304
12.3.4 不同隔離級(jí)別下的并發(fā)情況 305
12.4 小結(jié) 309
第13章 redo日志和undo日志 310
13.1 為什么需要日志維護(hù)事務(wù) 310
13.2 redo日志 311
13.2.1 redo日志的優(yōu)勢(shì) 311
13.2.2 redo日志文件組 311
13.2.3 checkpoint 312
13.2.4 Log Sequence Number 312
13.2.5 redo日志緩存 313
13.2.6 redo日志刷盤策略 314
13.2.7 redo日志相關(guān)參數(shù) 315
13.3 undo日志 316
13.3.1 為什么需要undo日志 316
13.3.2 undo日志的作用 316
13.3.3 undo日志的存儲(chǔ)機(jī)制 317
13.3.4 undo日志如何回滾事務(wù) 319
13.3.5 undo日志相關(guān)參數(shù) 321
13.4 小結(jié) 322
第14章 鎖 323
14.1 鎖概述 323
14.1.1 并發(fā)事務(wù)訪問(wèn)相同記錄 323
14.1.2 鎖的分類 324
14.2 共享鎖和獨(dú)占鎖 325
14.3 表級(jí)鎖 327
14.3.1 表級(jí)別的共享鎖和獨(dú)占鎖 327
14.3.2 意向鎖 331
14.3.3 自增鎖 333
14.3.4 元數(shù)據(jù)鎖 335
14.4 InnoDB存儲(chǔ)引擎中的行級(jí)鎖 336
14.4.1 記錄鎖 337
14.4.2 間隙鎖 338
14.4.3 臨鍵鎖 339
14.4.4 插入意向鎖 340
14.5 悲觀鎖和樂(lè)觀鎖 340
14.5.1 悲觀鎖 340
14.5.2 樂(lè)觀鎖 341
14.5.3 悲觀鎖和樂(lè)觀鎖的適用場(chǎng)景 342
14.6 隱式鎖和顯式鎖 342
14.6.1 隱式鎖 342
14.6.2 顯式鎖 343
14.7 死鎖 343
14.8 鎖監(jiān)控 348
14.9 MySQL加鎖案例解析 352
14.9.1 案例一:唯一索引等值查詢 352
14.9.2 案例二:非唯一索引等值
查詢 354
14.9.3 案例三:主鍵索引范圍查詢 356
14.9.4 案例四:非唯一索引上存在
等值的情況 357
14.9.5 案例五:LIMIT語(yǔ)句加鎖 359
14.10 小結(jié) 361
第15章 多版本并發(fā)控制 362
15.1 什么是MVCC 362
15.1.1 快照讀 363
15.1.2 當(dāng)前讀 363
15.2 版本鏈 363
15.3 ReadView 367
15.3.1 什么是ReadView 367
15.3.2 ReadView的設(shè)計(jì)思路 367
15.3.3 ReadView規(guī)則 368
15.3.4 MVCC整體操作流程 370
15.4 不同隔離級(jí)別下的ReadView 370
15.4.1 READ COMMITTED隔離級(jí)
別下的ReadView 371
15.4.2 REPEATABLE READ隔離級(jí)
別下的ReadView 373
15.5 小結(jié) 375
第16章 其他數(shù)據(jù)庫(kù)日志 376
16.1 MySQL支持的日志 376
16.2 通用查詢?nèi)罩?376
16.2.1 開(kāi)啟/關(guān)閉通用查詢?nèi)罩?br>功能 377
16.2.2 查看通用查詢?nèi)罩?378
16.2.3 刪除(刷新)通用查詢
日志 378
16.3 錯(cuò)誤日志 379
16.3.1 開(kāi)啟錯(cuò)誤日志功能 379
16.3.2 查看錯(cuò)誤日志 379
16.3.3 刪除(刷新)錯(cuò)誤日志 380
16.4 二進(jìn)制日志 381
16.4.1 開(kāi)啟/關(guān)閉二進(jìn)制日志功能 381
16.4.2 二進(jìn)制日志參數(shù)設(shè)置 382
16.4.3 查看二進(jìn)制日志 383
16.4.4 刪除(刷新)二進(jìn)制日志 388
16.4.5 使用二進(jìn)制日志恢復(fù)數(shù)據(jù) 389
16.4.6 二進(jìn)制日志的寫(xiě)入機(jī)制 394
16.4.7 兩階段提交 396
16.5 中繼日志 397
16.6 數(shù)據(jù)定義語(yǔ)句日志 398
16.7 小結(jié) 398
第17章 主從復(fù)制 399
17.1 主從復(fù)制概述 399
17.2 主從復(fù)制的原理 400
17.3 主從復(fù)制架構(gòu)的搭建 400
17.3.1 準(zhǔn)備工作 401
17.3.2 修改配置文件 401
17.3.3 主機(jī):創(chuàng)建賬戶并授權(quán) 402
17.3.4 從機(jī):配置需要復(fù)制的主機(jī)
信息 403
17.3.5 測(cè)試和停止主從復(fù)制 405
17.3.6 雙主雙從架構(gòu) 405
17.3.7 二進(jìn)制日志格式在主從復(fù)制架構(gòu)中的優(yōu)缺點(diǎn) 406
17.4 數(shù)據(jù)一致性 407
17.4.1 數(shù)據(jù)同步延遲問(wèn)題 407
17.4.2 如何解決主從復(fù)制中數(shù)據(jù)不一致的問(wèn)題 408
17.5 數(shù)據(jù)庫(kù)中間件 410
17.6 小結(jié) 410
第18章 數(shù)據(jù)庫(kù)備份與恢復(fù) 411
18.1 物理備份和邏輯備份的概念 411
18.2 邏輯備份之mysqldump命令 411
18.2.1 備份單個(gè)數(shù)據(jù)庫(kù) 412
18.2.2 備份全部數(shù)據(jù)庫(kù) 414
18.2.3 備份多個(gè)數(shù)據(jù)庫(kù) 414
18.2.4 備份部分表 414
18.2.5 備份單表中的部分?jǐn)?shù)據(jù) 416
18.2.6 排除某些表的備份 416
18.2.7 只備份表結(jié)構(gòu)或只備份
數(shù)據(jù) 416
18.2.8 備份中包含函數(shù)、存儲(chǔ)過(guò)程或
事件 417
18.2.9 以事務(wù)的形式備份 419
18.2.10 mysqldump命令的常用
參數(shù) 419
18.3 邏輯恢復(fù)之mysql命令 420
18.3.1 從單庫(kù)備份中恢復(fù)單庫(kù) 420
18.3.2 全量備份恢復(fù) 420
18.3.3 從全量備份中恢復(fù)單庫(kù) 421
18.3.4 從單庫(kù)備份中恢復(fù)單表 421
18.4 MyISAM存儲(chǔ)引擎類型的表的物理
備份 421
18.5 MyISAM存儲(chǔ)引擎類型的表的物理
備份的恢復(fù)流程 422
18.6 InnoDB存儲(chǔ)引擎類型的表的物理
導(dǎo)出、導(dǎo)入 423
18.7 導(dǎo)出不同格式的文件 424
18.7.1 使用SELECT…INTO OUTFILE語(yǔ)句導(dǎo)出文件 425
18.7.2 使用mysqldump命令導(dǎo)出
文件 426
18.7.3 使用mysql命令導(dǎo)出文件 428
18.8 導(dǎo)入文本文件 430
18.8.1 使用LOAD DATA INFILE
語(yǔ)句導(dǎo)入文本文件 430
18.8.2 使用mysqlimport命令導(dǎo)入
文本文件 431
18.9 數(shù)據(jù)遷移 433
18.9.1 數(shù)據(jù)遷移概述 433
18.9.2 遷移方案和注意事項(xiàng) 433
18.10 誤刪數(shù)據(jù)的預(yù)防方案和恢復(fù)方案 435
18.11 MySQL常用命令 436
18.11.1 mysql 436
18.11.2 mysqladmin 436
18.11.3 mysqlbinlog 437
18.11.4 mysqldump 438
18.11.5 mysqlshow 438
18.12 小結(jié) 439