內容簡介
《MySQL技術大全:開發、最佳化與運維實戰(視頻教學版)》結合大量示例和實戰案例,全面、系統、深入地介紹了MySQL資料庫技術,重點闡述了MySQL開發、最佳化和運維過程中的各個技術點。本書對學習MySQL技術有較高的參考價值,尤其是環境搭建、最佳化、維護和架構等內容可直接用於實際工作中。
《MySQL技術大全:開發、最佳化與運維實戰(視頻教學版)》共33章,分為6篇。第1篇“MySQL基礎”,介紹資料庫的定義、發展,以及資料庫技術和MySQL資料庫的三大範式與存儲引擎。第2篇“環境搭建”,介紹VMware虛擬機以及Windows、Mac OS X和CentOS作業系統的安裝,並介紹如何在三大作業系統上安裝和配置MySQL。第3篇“MySQL開發”,介紹MySQL中的資料庫操作、數據表操作、數據類型、運算符、函式、數據變更、數據查詢、索引、視圖、存儲過程、觸發器、分區、公用表表達式和生成列等。第4篇“MySQL最佳化”,介紹MySQL中的查詢最佳化、索引最佳化、SQL語句最佳化、資料庫最佳化、伺服器最佳化、應用程式最佳化及其他最佳化技術。第5篇“MySQL運維”,介紹MySQL中各種命令行工具的使用,以及各種日誌的開啟、查看、刪除與關閉,並介紹數據的備份與恢復及MySQL中的賬戶管理。第6篇“MySQL架構”,介紹MySQL中的複製、讀寫分離環境搭建,以及如何實現MySQL的高可用架構等。《MySQL技術大全:開發、最佳化與運維實戰(視頻教學版)》適合想全面學習MySQL的資料庫管理人員、開發人員、運維工程師和架構師閱讀,也適合各大院校的學生及相關培訓機構的學員閱讀。另外,本書還非常適合作為一本案頭手冊供相關技術人員隨查隨用。
圖書目錄
第1篇 MySQL基礎
第1章 資料庫概述 2
1.1 資料庫的定義 2
1.2 資料庫的發展 7
1.3 本章總結 8
第2章 資料庫技術 9
2.1 資料庫系統 9
2.2 SQL語言 11
2.3 資料庫訪問技術 15
2.4 本章總結 16
第3章 MySQL資料庫 17
3.1 MySQL三大範式 17
3.2 MySQL存儲引擎 20
3.3 本章總結 23
第2篇 環境搭建
第4章 安裝三大作業系統 26
4.1 安裝VMware虛擬機 26
4.2 安裝Windows作業系統 31
4.3 安裝Mac OS X作業系統 44
4.4 安裝CentOS作業系統 55
4.5 本章總結 65
第5章 伺服器基礎配置 66
5.1 配置CentOS 6.8伺服器環境 66
5.2 添加mysql用戶身份 75
5.3 本章總結 77
第6章 搭建MySQL環境 78
6.1 基於MSI檔案安裝Windows版本的MySQL 78
6.2 基於ZIP檔案安裝Windows版本的MySQL 92
6.3 基於DMG檔案安裝Mac OS X版本的MySQL 98
6.4 基於GZ檔案安裝Mac OS X版本的MySQL 105
6.5 基於RPM檔案安裝CentOS版本的MySQL 109
6.6 基於源碼安裝CentOS版本的MySQL 114
6.7 遇到的問題和解決方案 125
6.8 本章總結 126
第3篇 MySQL開發
第7章 MySQL運算元據庫 128
7.1 創建資料庫 128
7.2 查看資料庫 130
7.3 修改資料庫名稱 132
7.4 資料庫編碼 135
7.5 刪除資料庫 136
7.6 本章總結 137
第8章 MySQL運算元據表 138
8.1 創建數據表 138
8.2 查看數據表結構 147
8.3 修改數據表 149
8.4 刪除數據表 158
8.5 MySQL中的臨時表 160
8.6 本章總結 162
第9章 MySQL數據類型 163
9.1 數值類型 163
9.2 日期和時間類型 173
9.3 文本字元串類型 186
9.4 二進制字元串類型 193
9.5 本章總結 196
第10章 MySQL運算符 197
10.1 算術運算符 197
10.2 比較運算符 199
10.3 邏輯運算符 206
10.4 位運算符 208
10.5 運算符的優先權 210
10.6 本章總結 211
第11章 MySQL函式 212
11.1 MySQL函式簡介 212
11.2 數學函式 213
11.3 字元串函式 222
11.4 日期和時間函式 231
11.5 流程處理函式 247
11.6 加密與解密函式 248
11.7 聚合函式 250
11.8 獲取MySQL信息函式 252
11.9 加鎖與解鎖函式 254
11.10 JSON函式 256
11.11 視窗函式 261
11.12 MySQL的其他函式 269
11.13 本章總結 272
第12章 MySQL數據變更 273
12.1 數據插入 273
12.2 數據更新 280
12.3 數據刪除 286
12.4 本章總結 289
第13章 MySQL數據查詢 290
13.1 數據準備 290
13.2 SELECT查詢語句 291
13.3 WHERE條件語句 296
13.4 數據聚合查詢 310
13.5 JOIN語句 314
13.6 子查詢語句 318
13.7 UNION聯合語句 322
13.8 使用別名查詢數據 323
13.9 使用正則表達式查詢數據 325
13.10 本章總結 326
第14章 MySQL索引 327
14.1 索引簡介 327
14.2 索引的使用場景 329
14.3 創建數據表時創建索引 330
14.4 為已有數據表添加索引 338
14.5 刪除索引 347
14.6 隱藏索引 348
14.7 降序索引 355
14.8 函式索引 359
14.9 本章總結 363
第15章 MySQL視圖 364
15.1 視圖概述 364
15.2 創建視圖 365
15.3 查看視圖 370
15.4 修改視圖的結構 374
15.5 更新視圖的數據 376
15.6 刪除視圖 381
15.7 本章總結 382
第16章 存儲過程和函式 383
16.1 存儲過程和函式簡介 383
16.2 創建存儲過程和函式 386
16.3 查看存儲過程和函式 389
16.4 修改存儲過程和函式 394
16.5 調用存儲過程和函式 396
16.6 刪除存儲過程和函式 398
16.7 MySQL中使用變數 399
16.8 MySQL中使用變數案例 401
16.9 定義條件和處理程式 403
16.10 定義條件和處理程式案例 405
16.11 MySQL中游標的使用 410
16.12 MySQL中游標的使用案例 412
16.13 MySQL中控制流程的使用 414
16.14 本章總結 421
第17章 MySQL觸發器 422
17.1 創建觸發器 422
17.2 查看觸發器 425
17.3 刪除觸發器 429
17.4 本章小結 429
第18章 MySQL分區 430
18.1 分區介紹 430
18.2 RANGE分區 434
18.3 LIST分區 442
18.4 COLUMNS分區 445
18.5 HASH分區 448
18.6 KEY分區 451
18.7 子分區 452
18.8 分區中的NULL值處理 452
18.9 本章總結 455
第19章 MySQL公用表表達式和生成列 456
19.1 公用表表達式 456
19.2 生成列 461
19.3 本章總結 465
第4篇 MySQL最佳化
第20章 MySQL查詢最佳化 468
20.1 SHOW STATUS語句解析 468
20.2 EXPLAIN語句解析 469
20.3 SHOW PROFILE語句解析 477
20.4 pt-query-digest分析查詢 482
20.5 最佳化子查詢 483
20.6 本章總結 483
第21章 MySQL索引最佳化 484
21.1 索引的類型 484
21.2 使用索引的場景 485
21.3 無法使用索引的場景 490
21.4 使用索引提示 494
21.5 使用生成列為JSON建立索引 496
21.6 本章總結 497
第22章 SQL語句最佳化 498
22.1 嵌套查詢的最佳化 498
22.2 OR條件語句的最佳化 500
22.3 ORDER BY語句的最佳化 501
22.4 GROUP BY語句的最佳化 502
22.5 分頁查詢的最佳化 503
22.6 插入數據的最佳化 505
22.7 刪除數據的最佳化 506
22.8 本章總結 507
第23章 資料庫最佳化 508
23.1 最佳化數據類型 508
23.2 刪除重複索引和冗餘索引 511
23.3 反範式化設計 514
23.4 增加中間表 515
23.5 分析數據表 517
23.6 檢查數據表 518
23.7 最佳化數據表 518
23.8 拆分數據表 519
23.9 本章總結 520
第24章 MySQL伺服器最佳化 521
24.1 MySQL伺服器硬體的最佳化 521
24.2 MySQL配置項的最佳化 523
24.3 本章總結 524
第25章 應用程式最佳化 525
25.1 復用資料庫連線 525
25.2 減少數據訪問 526
25.3 開啟查詢快取 527
25.4 使用外部快取 528
25.5 使用分散式MySQL架構 529
25.6 本章總結 529
第26章 MySQL的其他最佳化選項 530
26.1 使用performance_schema資料庫分析MySQL 530
26.2 使用sys資料庫分析MySQL 535
26.3 MySQL 8.x中的資源組 538
26.4 本章總結 544
第5篇 MySQL運維
第27章 MySQL命令行工具 546
27.1 查看MySQL命令 546
27.2 mysql命令 547
27.3 mysqladmin命令 552
27.4 myisampack命令 554
27.5 mysqlbinlog命令 555
27.6 mysqlcheck命令 558
27.7 mysqlshow命令 559
27.8 mysqldump命令 561
27.9 mysqlimport命令 563
27.10 本章總結 564
第28章 MySQL日誌 565
28.1 查詢日誌 565
28.2 慢查詢日誌 568
28.3 錯誤日誌 571
28.4 二進制日誌 573
28.5 本章總結 577
第29章 數據備份與恢復 578
29.1 基於mysqldump備份並恢複數據 578
29.2 基於mysqlpump備份並恢複數據 582
29.3 基於mydumper備份並恢複數據 583
29.4 基於mysqlhotcopy備份並恢複數據 589
29.5 基於xtrabackup備份並恢複數據 590
29.6 數據備份與恢復案例 596
29.7 MySQL災難恢復 598
29.8 實現資料庫的自動備份 602
29.9 導出數據 603
29.10 導入數據 607
29.11 遇到的問題和解決方案 610
29.12 本章總結 611
第30章 MySQL賬戶管理 612
30.1 MySQL中的許可權表 612
30.2 創建普通用戶 613
30.3 為用戶授權 620
30.4 查看用戶許可權 624
30.5 修改用戶許可權 626
30.6 撤銷用戶許可權 628
30.7 修改用戶密碼 630
30.8 刪除用戶 633
30.9 限制用戶使用資源 634
30.10 MySQL 8.x版本中的賬戶管理 636
30.11 本章總結 644
第6篇 MySQL架構
第31章 MySQL複製 646
31.1 搭建MySQL主從複製環境 646
31.2 搭建MySQL主主複製環境 652
31.3 添加MySQL從庫 655
31.4 切換主從複製到鏈式複製 659
31.5 切換鏈式複製到主從複製 662
31.6 搭建MySQL多源複製環境 665
31.7 添加複製過濾器 668
31.8 設定延遲複製 671
31.9 基於GTID搭建MySQL主從複製環境 671
31.10 基於半同步模式搭建MySQL主從複製環境 673
31.11 本章總結 677
第32章 MySQL讀寫分離 678
32.1 基於MySQL Proxy實現讀寫分離 678
32.2 基於Atlas實現讀寫分離 685
32.3 基於ProxySQL實現讀寫分離 689
32.4 基於Amoeba實現讀寫分離 695
32.5 基於Mycat實現讀寫分離 700
32.6 本章總結 704
第33章 MySQL HA高可用架構 705
33.1 基於Keepalived搭建MySQL高可用環境 705
33.2 基於HAProxy搭建Mycat高可用環境 713
33.3 基於Keepalived搭建HAProxy高可用環境 721
33.4 本章總結 726
參考文獻 727
讀者人群
資料庫管理人員
開發人員
運維工程師和架構師
各大院校的學生及相關培訓機構的學員
作者簡介
冰河 大數據架構師,編程專家,開源分散式事務框架mykit-transaction-message的作者,可視化數據異構開源框架mykit-data作者。致力於分散式系統架構、微服務架構、分散式資料庫、分散式事務與大數據技術的研究,在高並發、高可用、高可擴展、高可維護和大數據等技術領域有豐富的實戰經驗。運營“冰河技術”公眾號,著有《海量數據處理與大數據技術實戰》。