MySQL 8.0 的發(fā)布是MySQL 發(fā)展歷史上的一個(gè)重要里程碑,也是開(kāi)源數(shù)據(jù)庫(kù)領(lǐng)域內(nèi)的一個(gè)大事件。針對(duì)這個(gè)版本,MySQL 官方團(tuán)隊(duì)做了太多的工作,從查詢(xún)優(yōu)化到集群架構(gòu),從參數(shù)調(diào)整到特性支持,MySQL 都有了革命性的變化。本書(shū)基于MySQL 8.0,以基礎(chǔ)知識(shí)為入手點(diǎn),以講解技術(shù)特性為目標(biāo),以案例作為理論的補(bǔ)充,詳細(xì)介紹了MySQL 的方方面面,提供了超過(guò)150 個(gè)高性能數(shù)據(jù)庫(kù)查詢(xún)與管理技巧,是MySQL 入門(mén)者和管理者的必讀之作。
Karthik Appigatla是一位備受尊敬的數(shù)據(jù)庫(kù)架構(gòu)師,他在性能調(diào)優(yōu)領(lǐng)域聞名于世。 他為世界各地的許多公司提供設(shè)計(jì)咨詢(xún)、性能調(diào)優(yōu)、數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)和培訓(xùn)服務(wù)。 過(guò)去十年中,他曾為雅虎、Pythian和Percona等公司工作過(guò)。目前,他正在為L(zhǎng)inkedIn工作,在那里他發(fā)明了一種新的分析方式查詢(xún)。他于2017年在都柏林的SRECon上發(fā)表了演講。
周彥偉,Oracle ACE Director(MySQL),中國(guó)計(jì)算機(jī)行業(yè)協(xié)會(huì)開(kāi)源數(shù)據(jù)庫(kù)專(zhuān)業(yè)委員會(huì)會(huì)長(zhǎng),中國(guó)MySQL用戶(hù)組(ACMUG)主席,曾在去哪兒網(wǎng)、人人網(wǎng)等互聯(lián)網(wǎng)公司工作多年,專(zhuān)注于MySQL數(shù)據(jù)庫(kù)的技術(shù)和推廣,著有《MySQL運(yùn)維內(nèi)參》,該書(shū)被業(yè)內(nèi)從業(yè)者視為MySQL面試寶典。2018年創(chuàng)辦極數(shù)云舟,提供MySQL技術(shù)產(chǎn)品和顧問(wèn)服務(wù)。孟治華,美國(guó)波士頓大學(xué)計(jì)算機(jī)專(zhuān)業(yè)碩士,擁有14年以上的數(shù)據(jù)庫(kù)相關(guān)項(xiàng)目經(jīng)驗(yàn),曾多年在美國(guó)為Walmart、CVS Health等世界500強(qiáng)公司提供數(shù)據(jù)倉(cāng)庫(kù)和商業(yè)智能項(xiàng)目咨詢(xún)服務(wù);貒(guó)后積極參與ACMUG等知名開(kāi)源社區(qū)活動(dòng),并致力于開(kāi)源數(shù)據(jù)庫(kù)知識(shí)的推廣和傳播。王學(xué)芳,中國(guó)礦業(yè)大學(xué)(北京)計(jì)算機(jī)技術(shù)專(zhuān)業(yè)在讀研究生,對(duì)數(shù)據(jù)庫(kù)很感興趣,一直關(guān)注MySQL社區(qū)的發(fā)展動(dòng)態(tài)、技術(shù)革新等內(nèi)容。
第1章 安裝或升級(jí)到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 啟動(dòng)或停止MySQL 8的運(yùn)行 16
1.6 卸載MySQL 8 20
1.7 用systemd管理MySQL服務(wù)器 22
1.8 從MySQL 8.0降級(jí) 24
1.9 升級(jí)到MySQL 8.0 29
1.10 安裝MySQL工具集 35
第2章 使用MySQL 37
2.1 引言 38
2.2 使用命令行客戶(hù)端連接到MySQL 38
2.3 創(chuàng)建數(shù)據(jù)庫(kù) 40
2.4 創(chuàng)建表 44
2.5 插入、更新和刪除行 49
2.6 加載示例數(shù)據(jù) 52
2.7 查詢(xún)數(shù)據(jù) 55
2.8 對(duì)結(jié)果排序 63
2.9 對(duì)結(jié)果分組(聚合函數(shù)) 64
2.10 創(chuàng)建用戶(hù) 68
2.11 授予和撤銷(xiāo)用戶(hù)的訪問(wèn)權(quán)限 70
2.12 查詢(xún)數(shù)據(jù)并保存到文件和表中 78
2.13 將數(shù)據(jù)加載到表中 81
2.14 表關(guān)聯(lián) 82
2.15 存儲(chǔ)過(guò)程 90
2.16 函數(shù) 95
2.17 觸發(fā)器 98
2.18 視圖 100
2.19 事件 102
2.20 獲取有關(guān)數(shù)據(jù)庫(kù)和表的信息 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 使用全局變量和會(huì)話變量 131
4.4 在啟動(dòng)腳本中使用參數(shù) 132
4.5 配置參數(shù) 132
4.6 更改數(shù)據(jù)目錄 135
第5章 事務(wù) 137
5.1 引言 137
5.2 執(zhí)行事務(wù) 138
5.3 使用保存點(diǎn) 140
5.4 隔離級(jí)別 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)制日志中提取語(yǔ)句 161
6.5 忽略要寫(xiě)入二進(jìn)制日志的數(shù)據(jù)庫(kù) 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 鎖定實(shí)例進(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í)行時(shí)間點(diǎn)恢復(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 將從庫(kù)由主從復(fù)制切換到鏈?zhǔn)綇?fù)制 222
9.7 將從庫(kù)由鏈?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ù)庫(kù)之間移動(dòng)表 248
10.5 使用在線模式更改工具修改表 250
10.6 歸檔表 255
10.7 克隆表 257
10.8 分區(qū)修剪和指定 269
10.9 管理分區(qū) 273
10.10 分區(qū)信息 276
10.11 有效地管理生存時(shí)間和軟刪除行 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)建獨(dú)立表空間 298
11.5 將獨(dú)立表空間復(fù)制到另一個(gè)實(shí)例 299
11.6 管理UNDO表空間 307
11.7 管理通用表空間 311
11.8 壓縮InnoDB表 315
第12章 日志管理 320
12.1 引言 320
12.2 管理錯(cuò)誤日志 320
12.3 管理通用查詢(xún)?nèi)罩竞吐樵?xún)?nèi)罩?328
12.4 管理二進(jìn)制日志 335
第13章 性能調(diào)優(yōu) 338
13.1 引言 338
13.2 explain計(jì)劃 339
13.3 基準(zhǔn)查詢(xún)和服務(wù)器 345
13.4 添加索引 347
13.5 不可見(jiàn)索引 353
13.6 降序索引 355
13.7 使用pt-query-digest分析慢查詢(xún) 358
13.8 優(yōu)化數(shù)據(jù)類(lèi)型 364
13.9 刪除重復(fù)和冗余索引 366
13.10 檢查索引的使用情況 374
13.11 控制查詢(xún)優(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ò)和用戶(hù) 417
14.4 使用mysql_config_editor進(jìn)行無(wú)密碼認(rèn)證 418
14.5 重置root密碼 421
14.6 使用X509設(shè)置加密連接 425
14.7 設(shè)置SSL復(fù)制 428