■ MySQL 8的更新幅度在MySQL歷史上可謂空前,增添很多重磅新特性——“數據字典”取消了已存在幾十年的frm文件,將插件式數據庫的重心偏向InnoDB,極大提高meta data的訪(fǎng)問(wèn)性能,并支持了DDL原子性,還可進(jìn)一步實(shí)現DDL回滾等操作;支持隱藏索引,使DBA能更加靈活地對數據庫調優(yōu);統計分析方面支持通用表表達式、窗口函數等,在數據庫層面實(shí)現復雜計算;以及劃時(shí)代變革MGR架構。
■ 使用過(guò)MySQL早期版本的數據庫管理員和開(kāi)發(fā)者,可通過(guò)本書(shū)了解MySQL 8的新功能及如何利用;有其他RDBMS(如Oracle、MSSQL、PostgreSQL和DB2)工作經(jīng)驗的讀者可將本書(shū)作為學(xué)習MySQL 8的快速入門(mén)指南;初學(xué)者可作為使用手冊,參考書(shū)中內容找到問(wèn)題的快速解決方案;MySQL專(zhuān)家可以將本書(shū)作為解決不常見(jiàn)問(wèn)題及疑難雜癥的工具書(shū)。
■ 本書(shū)可讓你做好應對生產(chǎn)環(huán)境問(wèn)題的準備。讀完本書(shū)后,你將有信心管理好擁有海量數據集的大型數據庫服務(wù)器。作者使用MySQL超過(guò)10年,目睹大量小錯誤導致的重大停機事故,本書(shū)涵蓋許多容易出錯的場(chǎng)景,并用警告圖標顯著(zhù)標出。
■ 本書(shū)介紹MySQL 8新特性,以及管理高并發(fā)事務(wù)和實(shí)時(shí)數據集的實(shí)踐經(jīng)驗;還講了有效管理MySQL的方法,包括有效的用戶(hù)管理、數據恢復、安全性保障、數據庫監控、性能調優(yōu)、排除故障等;本書(shū)解決MySQL 8問(wèn)題中的實(shí)用技巧和訣竅能幫你有效地設計、開(kāi)發(fā)和管理數據庫。
√ 無(wú)障礙安裝和配置MySQL 8實(shí)例
√ 掌握MySQL 8的新特性,如CTE、窗口函數等
√ 執行備份任務(wù)、恢復數據并為數據庫設置各種復制拓撲
√ 利用降序索引、控制查詢(xún)優(yōu)化器和資源組等MySQL 8的新功能大幅提高性能
√ 了解如何使用公用表表達式來(lái)滿(mǎn)足SaaS或多租戶(hù)應用程序的需要
√ 使用performance schema、sys schema和第三方工具分析慢查詢(xún)
√ 管理和監控MySQL實(shí)例,并高效地完成性能調優(yōu)任務(wù)
MySQL 8.0 的發(fā)布是MySQL 發(fā)展歷史上的一個(gè)重要里程碑,也是開(kāi)源數據庫領(lǐng)域內的一個(gè)大事件。針對這個(gè)版本,MySQL 官方團隊做了太多的工作,從查詢(xún)優(yōu)化到集群架構,從參數調整到特性支持,MySQL 都有了革命性的變化?!禡ySQL 8 Cookbook(中文版)》基于MySQL 8.0,以基礎知識為入手點(diǎn),以講解技術(shù)特性為目標,以案例作為理論的補充,詳細介紹了MySQL 的方方面面,提供了超過(guò)150 個(gè)高性能數據庫查詢(xún)與管理技巧,是MySQL 入門(mén)者和管理者的必讀之作。
Karthik Appigatla是一位備受尊敬的數據庫架構師,他在性能調優(yōu)領(lǐng)域聞名于世。他為世界各地的許多公司提供設計咨詢(xún)、性能調優(yōu)、數據庫架構設計和培訓服務(wù)。在過(guò)去十年中,他曾供職于雅虎、Pythian和Percona等公司。目前,他任職于LinkedIn,在那里他發(fā)明了一種新的分析查詢(xún)方法,并于2017年在都柏林的SRECon上發(fā)表了關(guān)于這個(gè)新發(fā)明的演講。
譯者簡(jiǎn)介
周彥偉,Oracle ACE Director(MySQL),中國計算機行業(yè)協(xié)會(huì )開(kāi)源數據庫專(zhuān)業(yè)委員會(huì )會(huì )長(cháng),中國MySQL用戶(hù)組(ACMUG)主席,曾在去哪兒網(wǎng)、人人網(wǎng)等互聯(lián)網(wǎng)公司工作多年,專(zhuān)注于MySQL數據庫的技術(shù)和推廣,著(zhù)有《MySQL運維內參》,該書(shū)被業(yè)內從業(yè)者視為MySQL面試寶典。2018年創(chuàng )辦極數云舟,提供MySQL技術(shù)產(chǎn)品和顧問(wèn)服務(wù)。
孟治華,美國波士頓大學(xué)計算機專(zhuān)業(yè)碩士,擁有14年以上的數據庫相關(guān)項目經(jīng)驗,曾多年在美國為Walmart、CVS Health等世界500強公司提供數據倉庫和商業(yè)智能項目咨詢(xún)服務(wù)?;貒蠓e極參與ACMUG等知名開(kāi)源社區活動(dòng),并致力于開(kāi)源數據庫知識的推廣和傳播。
王學(xué)芳,中國礦業(yè)大學(xué)(北京)計算機技術(shù)專(zhuān)業(yè)在讀研究生,對數據庫很感興趣,一直關(guān)注MySQL社區的發(fā)展動(dòng)態(tài)、技術(shù)革新等內容。
第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系統上安裝MySQL 12
1.5 啟動(dòng)或停止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 使用命令行客戶(hù)端連接到MySQL 38
2.3 創(chuàng )建數據庫 40
2.4 創(chuàng )建表 44
2.5 插入、更新和刪除行 49
2.6 加載示例數據 52
2.7 查詢(xún)數據 55
2.8 對結果排序 63
2.9 對結果分組(聚合函數) 64
2.10 創(chuàng )建用戶(hù) 68
2.11 授予和撤銷(xiāo)用戶(hù)的訪(fǎng)問(wèn)權限 70
2.12 查詢(xún)數據并保存到文件和表中 78
2.13 將數據加載到表中 81
2.14 表關(guān)聯(lián) 82
2.15 存儲過(guò)程 90
2.16 函數 95
2.17 觸發(fā)器 98
2.18 視圖 100
2.19 事件 102
2.20 獲取有關(guān)數據庫和表的信息 104
第3章 使用MySQL(進(jìn)階) 110
3.1 引言 110
3.2 使用JSON 110
3.3 公用表表達式(CTE) 116
3.4 生成列(generated column) 122
3.5 窗口函數 124
第4章 配置MySQL 129
4.1 引言 129
4.2 使用配置文件 130
4.3 使用全局變量和會(huì )話(huà)變量 131
4.4 在啟動(dòng)腳本中使用參數 132
4.5 配置參數 132
4.6 更改數據目錄 135
第5章 事務(wù) 137
5.1 引言 137
5.2 執行事務(wù) 138
5.3 使用保存點(diǎn) 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)制日志中提取語(yǔ)句 161
6.5 忽略要寫(xiě)入二進(jìn)制日志的數據庫 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章 恢復數據 197
8.1 引言 197
8.2 從mysqldump和mysqlpump中恢復 197
8.3 使用myloader從mydumper中恢復 198
8.4 從普通文件備份中恢復 200
8.5 執行時(shí)間點(diǎn)恢復 201
第9章 復制 204
9.1 引言 204
9.2 準備復制 205
9.3 設置主主復制 212
9.4 設置多源復制 213
9.5 設置復制篩選器 220
9.6 將從庫由主從復制切換到鏈式復制 222
9.7 將從庫由鏈式復制切換到主從復制 227
9.8 設置延遲復制 231
9.9 設置GTID復制 234
9.10 設置半同步復制 238
第10章 表維護 243
10.1 引言 243
10.2 安裝Percona工具包 244
10.3 修改表結構 246
10.4 在數據庫之間移動(dòng)表 248
10.5 使用在線(xiàn)模式更改工具修改表 250
10.6 歸檔表 255
10.7 克隆表 257
10.8 分區修剪和指定 269
10.9 管理分區 273
10.10 分區信息 276
10.11 有效地管理生存時(shí)間和軟刪除行 281
第11章 管理表空間 289
11.1 引言 289
11.2 更改InnoDB REDO日志文件的數量或大小 292
11.3 調整InnoDB系統的表空間大小 294
11.4 在數據目錄之外創(chuàng )建獨立表空間 298
11.5 將獨立表空間復制到另一個(gè)實(shí)例 299
11.6 管理UNDO表空間 307
11.7 管理通用表空間 311
11.8 壓縮InnoDB表 315
第12章 日志管理 320
12.1 引言 320
12.2 管理錯誤日志 320
12.3 管理通用查詢(xún)日志和慢查詢(xún)日志 328
12.4 管理二進(jìn)制日志 335
第13章 性能調優(yōu) 338
13.1 引言 338
13.2 explain計劃 339
13.3 基準查詢(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)化數據類(lèi)型 364
13.9 刪除重復和冗余索引 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ú)密碼認證 418
14.5 重置root密碼 421
14.6 使用X509設置加密連接 425
14.7 設置SSL復制 428