MySQL 8.0 的發(fā)布是MySQL 發(fā)展歷史上的一個重要里程碑,也是開源數(shù)據(jù)庫領(lǐng)域內(nèi)的一個大事件。針對這個版本,MySQL 官方團(tuán)隊做了太多的工作,從查詢優(yōu)化到集群架構(gòu),從參數(shù)調(diào)整到特性支持,MySQL 都有了革命性的變化。本書基于MySQL 8.0,以基礎(chǔ)知識為入手點,以講解技術(shù)特性為目標(biāo),以案例作為理論的補充,詳細(xì)介紹了MySQL 的方方面面,提供了超過150 個高性能數(shù)據(jù)庫查詢與管理技巧,是MySQL 入門者和管理者的必讀之作。
Karthik Appigatla是一位備受尊敬的數(shù)據(jù)庫架構(gòu)師,他在性能調(diào)優(yōu)領(lǐng)域聞名于世。 他為世界各地的許多公司提供設(shè)計咨詢、性能調(diào)優(yōu)、數(shù)據(jù)庫架構(gòu)設(shè)計和培訓(xùn)服務(wù)。 過去十年中,他曾為雅虎、Pythian和Percona等公司工作過。目前,他正在為LinkedIn工作,在那里他發(fā)明了一種新的分析方式查詢。他于2017年在都柏林的SRECon上發(fā)表了演講。
周彥偉,Oracle ACE Director(MySQL),中國計算機(jī)行業(yè)協(xié)會開源數(shù)據(jù)庫專業(yè)委員會會長,中國MySQL用戶組(ACMUG)主席,曾在去哪兒網(wǎng)、人人網(wǎng)等互聯(lián)網(wǎng)公司工作多年,專注于MySQL數(shù)據(jù)庫的技術(shù)和推廣,著有《MySQL運維內(nèi)參》,該書被業(yè)內(nèi)從業(yè)者視為MySQL面試寶典。2018年創(chuàng)辦極數(shù)云舟,提供MySQL技術(shù)產(chǎn)品和顧問服務(wù)。孟治華,美國波士頓大學(xué)計算機(jī)專業(yè)碩士,擁有14年以上的數(shù)據(jù)庫相關(guān)項目經(jīng)驗,曾多年在美國為Walmart、CVS Health等世界500強(qiáng)公司提供數(shù)據(jù)倉庫和商業(yè)智能項目咨詢服務(wù);貒蠓e極參與ACMUG等知名開源社區(qū)活動,并致力于開源數(shù)據(jù)庫知識的推廣和傳播。王學(xué)芳,中國礦業(yè)大學(xué)(北京)計算機(jī)技術(shù)專業(yè)在讀研究生,對數(shù)據(jù)庫很感興趣,一直關(guān)注MySQL社區(qū)的發(fā)展動態(tài)、技術(shù)革新等內(nèi)容。
第1章 安裝或升級到MySQL 8 1
1.1 引言 1
1.2 使用YUM / APT安裝MySQL 2
1.3 使用RPM或DEB文件安裝MySQL 8.0 9
1.4 使用通用二進(jìn)制文件在Linux系統(tǒng)上安裝MySQL 12
1.5 啟動或停止MySQL 8的運行 16
1.6 卸載MySQL 8 20
1.7 用systemd管理MySQL服務(wù)器 22
1.8 從MySQL 8.0降級 24
1.9 升級到MySQL 8.0 29
1.10 安裝MySQL工具集 35
第2章 使用MySQL 37
2.1 引言 38
2.2 使用命令行客戶端連接到MySQL 38
2.3 創(chuàng)建數(shù)據(jù)庫 40
2.4 創(chuàng)建表 44
2.5 插入、更新和刪除行 49
2.6 加載示例數(shù)據(jù) 52
2.7 查詢數(shù)據(jù) 55
2.8 對結(jié)果排序 63
2.9 對結(jié)果分組(聚合函數(shù)) 64
2.10 創(chuàng)建用戶 68
2.11 授予和撤銷用戶的訪問權(quán)限 70
2.12 查詢數(shù)據(jù)并保存到文件和表中 78
2.13 將數(shù)據(jù)加載到表中 81
2.14 表關(guān)聯(lián) 82
2.15 存儲過程 90
2.16 函數(shù) 95
2.17 觸發(fā)器 98
2.18 視圖 100
2.19 事件 102
2.20 獲取有關(guān)數(shù)據(jù)庫和表的信息 104
第3章 使用MySQL(進(jìn)階) 110
3.1 引言 110
3.2 使用JSON 110
3.3 公用表表達(dá)式(CTE) 116
3.4 生成列(generated column) 122
3.5 窗口函數(shù) 124
第4章 配置MySQL 129
4.1 引言 129
4.2 使用配置文件 130
4.3 使用全局變量和會話變量 131
4.4 在啟動腳本中使用參數(shù) 132
4.5 配置參數(shù) 132
4.6 更改數(shù)據(jù)目錄 135
第5章 事務(wù) 137
5.1 引言 137
5.2 執(zhí)行事務(wù) 138
5.3 使用保存點 140
5.4 隔離級別 142
5.5 鎖 147
第6章 二進(jìn)制日志 153
6.1 引言 153
6.2 使用二進(jìn)制日志 154
6.3 二進(jìn)制日志的格式 159
6.4 從二進(jìn)制日志中提取語句 161
6.5 忽略要寫入二進(jìn)制日志的數(shù)據(jù)庫 173
6.6 遷移二進(jìn)制日志 174
第7章 備份 177
7.1 引言 177
7.2 使用mysqldump進(jìn)行備份 178
7.3 使用mysqlpump進(jìn)行備份 182
7.4 使用mydumper進(jìn)行備份 185
7.5 使用普通文件進(jìn)行備份 191
7.6 使用XtraBackup進(jìn)行備份 192
7.7 鎖定實例進(jìn)行備份 195
7.8 使用二進(jìn)制日志進(jìn)行備份 195
第8章 恢復(fù)數(shù)據(jù) 197
8.1 引言 197
8.2 從mysqldump和mysqlpump中恢復(fù) 197
8.3 使用myloader從mydumper中恢復(fù) 198
8.4 從普通文件備份中恢復(fù) 200
8.5 執(zhí)行時間點恢復(fù) 201
第9章 復(fù)制 204
9.1 引言 204
9.2 準(zhǔn)備復(fù)制 205
9.3 設(shè)置主主復(fù)制 212
9.4 設(shè)置多源復(fù)制 213
9.5 設(shè)置復(fù)制篩選器 220
9.6 將從庫由主從復(fù)制切換到鏈?zhǔn)綇?fù)制 222
9.7 將從庫由鏈?zhǔn)綇?fù)制切換到主從復(fù)制 227
9.8 設(shè)置延遲復(fù)制 231
9.9 設(shè)置GTID復(fù)制 234
9.10 設(shè)置半同步復(fù)制 238
第10章 表維護(hù) 243
10.1 引言 243
10.2 安裝Percona工具包 244
10.3 修改表結(jié)構(gòu) 246
10.4 在數(shù)據(jù)庫之間移動表 248
10.5 使用在線模式更改工具修改表 250
10.6 歸檔表 255
10.7 克隆表 257
10.8 分區(qū)修剪和指定 269
10.9 管理分區(qū) 273
10.10 分區(qū)信息 276
10.11 有效地管理生存時間和軟刪除行 281
第11章 管理表空間 289
11.1 引言 289
11.2 更改InnoDB REDO日志文件的數(shù)量或大小 292
11.3 調(diào)整InnoDB系統(tǒng)的表空間大小 294
11.4 在數(shù)據(jù)目錄之外創(chuàng)建獨立表空間 298
11.5 將獨立表空間復(fù)制到另一個實例 299
11.6 管理UNDO表空間 307
11.7 管理通用表空間 311
11.8 壓縮InnoDB表 315
第12章 日志管理 320
12.1 引言 320
12.2 管理錯誤日志 320
12.3 管理通用查詢?nèi)罩竞吐樵內(nèi)罩?328
12.4 管理二進(jìn)制日志 335
第13章 性能調(diào)優(yōu) 338
13.1 引言 338
13.2 explain計劃 339
13.3 基準(zhǔn)查詢和服務(wù)器 345
13.4 添加索引 347
13.5 不可見索引 353
13.6 降序索引 355
13.7 使用pt-query-digest分析慢查詢 358
13.8 優(yōu)化數(shù)據(jù)類型 364
13.9 刪除重復(fù)和冗余索引 366
13.10 檢查索引的使用情況 374
13.11 控制查詢優(yōu)化器 375
13.12 使用索引提示(hint) 389
13.13 使用生成列為JSON建立索引 392
13.14 使用資源組 395
13.15 使用performance_schema 398
13.16 使用sys schema 405
第14章 安全 413
14.1 引言 413
14.2 安全安裝 413
14.3 限定網(wǎng)絡(luò)和用戶 417
14.4 使用mysql_config_editor進(jìn)行無密碼認(rèn)證 418
14.5 重置root密碼 421
14.6 使用X509設(shè)置加密連接 425
14.7 設(shè)置SSL復(fù)制 428