3dwoo大學簡體電腦書店
深入淺出MySQL 數據庫開發 優化與管理維護 第3版
( 簡體 字)
作者:翟振興、張恒巖、崔春華、黃榮、董騏銘類別:1. -> 資料庫 -> MySQL
出版社:人民郵電出版社深入淺出MySQL 數據庫開發 優化與管理維護 第3版 3dWoo書號: 51717
詢問書籍請說出此書號!
有庫存
NT售價: 690
出版日:9/1/2019
頁數:682
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787115515391 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第 一部分 基礎篇
第 1章 MySQL的安裝與配置 2
1.1 MySQL的下載 2
1.1.1 在Windows平臺下下載MySQL 3
1.1.2 在Linux平臺下下載MySQL 3
1.2 MySQL的安裝 5
1.2.1 在Windows平臺下安裝MySQL 5
1.2.2 在Linux平臺下安裝MySQL 8
1.3 MySQL的配置 12
1.3.1 Windows平臺下配置MySQL 12
1.3.2 Linux平臺下配置MySQL 13
1.4 啟動和關閉MySQL服務 13
1.4.1 在Windows平臺下啟動和關閉MySQL服務 13
1.4.2 在Linux平臺下啟動和關閉MySQL服務 13
1.5 小結 14
第 2章 SQL基礎 15
2.1 SQL簡介 15
2.2 (My)SQL使用入門 15
2.2.1 SQL分類 15
2.2.2 DDL語句 16
2.2.3 DML語句 23
2.2.4 DCL語句 33
2.3 幫助的使用 34
2.3.1 按照層次看幫助 34
2.3.2 快速查閱幫助 35
2.4 查詢元數據信息 36
2.5 小結 37
第3章 MySQL支持的數據類型 38
3.1 數值類型 38
3.2 日期時間類型 43
3.3 字符串類型 49
3.3.1 CHAR和VARCHAR類型 50
3.3.2 BINARY和VARBINARY類型 51
3.3.3 ENUM類型 51
3.3.4 SET類型 52
3.4 JSON類型 52
3.5 小結 54
第4章 MySQL中的運算符 55
4.1 算術運算符 55
4.2 比較運算符 56
4.3 邏輯運算符 59
4.4 位運算符 60
4.5 運算符的優先級 61
4.6 小結 62
第5章 常用函數 63
5.1 字符串函數 63
5.2 數值函數 66
5.3 日期和時間函數 68
5.4 流程函數 71
5.5 JSON函數 73
5.5.1 創建JSON函數 74
5.5.2 查詢JSON函數 75
5.5.3 修改JSON的函數 79
5.5.4 查詢JSON元數據函數 81
5.5.5 JSON工具函數 83
5.6 窗口函數 86
5.6.1 ROW_NUMBER() 87
5.6.2 RANK()/DENSE_RANK() 89
5.6.3 PERCENT_RANK()/CUME_DIST() 89
5.6.4 NFILE(N) 90
5.6.5 NTH_VALUE(expr,N) 91
5.6.6 LAG(expr,N)/LEAD(expr,N) 91
5.6.7 FIRST_VALUE(expr)/LAST_VALUE(expr) 92
5.6.8 聚合函數作為窗口函數 93
5.7 其他常用函數 93
5.8 小結 95
第二部分 開發篇
第6章 表類型(存儲引擎)的選擇 98
6.1 MySQL存儲引擎概述 98
6.2 各種存儲引擎的特性 100
6.2.1 MyISAM 101
6.2.2 InnoDB 102
6.2.3 MEMORY 108
6.2.4 MERGE 109
6.2.5 TokuDB 111
6.3 如何選擇合適的存儲引擎 112
6.4 小結 113
第7章 選擇合適的數據類型 114
7.1 CHAR與VARCHAR 114
7.2 TEXT與BLOB 115
7.3 浮點數與定點數 118
7.4 日期類型選擇 120
7.5 小結 120
第8章 字符集 121
8.1 字符集概述 121
8.2 Unicode簡述 121
8.3 漢字及一些常見字符集 123
8.4 怎樣選擇合適的字符集 124
8.5 MySQL支持的字符集簡介 125
8.6 MySQL字符集的設置 126
8.6.1 服務器字符集和排序規則 126
8.6.2 數據庫字符集和排序規則 127
8.6.3 表字符集和排序規則 127
8.6.4 列字符集和排序規則 128
8.6.5 連接字符集和排序規則 128
8.7 字符集的修改步驟 129
8.8 小結 129
第9章 索引的設計和使用 130
9.1 索引概述 130
9.2 設計索引的原則 131
9.3 索引設計的誤區 132
9.4 索引設計的一般步驟 132
9.5 BTREE索引與HASH索引 133
9.6 索引在MySQL 8.0中的改進 134
9.6.1 不可見索引 134
9.6.2 倒序索引 135
9.7 小結 136
第 10章 開發常用數據庫對象 137
10.1 視圖 137
10.1.1 什么是視圖 137
10.1.2 視圖操作 137
10.1.3 創建或者修改視圖 137
10.1.4 刪除視圖 139
10.1.5 查看視圖 139
10.2 存儲過程和函數 140
10.2.1 什么是存儲過程和函數 141
10.2.2 存儲過程和函數的相關操作 141
10.2.3 創建、修改存儲過程或者函數 141
10.2.4 刪除存儲過程或者函數 144
10.2.5 查看存儲過程或者函數 144
10.2.6 變量的使用 146
10.2.7 定義條件和處理 146
10.2.8 光標的使用 148
10.2.9 流程控制 149
10.2.10 事件調度器 152
10.3 觸發器 155
10.3.1 創建觸發器 155
10.3.2 刪除觸發器 157
10.3.3 查看觸發器 157
10.3.4 觸發器的使用 158
10.4 小結 159
第 11章 事務控制和鎖定語句 160
11.1 LOCK TABLES和UNLOCK TABLES 160
11.2 事務控制 161
11.3 分布式事務的使用 166
11.3.1 分布式事務的原理 166
11.3.2 分布式事務的語法 166
11.3.3 存在的問題 168
11.4 小結 171
第 12章 SQL中的安全問題 172
12.1 SQL注入簡介 172
12.2 應用開發中可以采取的應對措施 173
12.2.1 PrepareStatement+Bind-Variable 173
12.2.2 使用應用程序提供的轉換函數 174
12.2.3 自己定義函數進行校驗 174
12.3 小結 175
第 13章 SQL Mode及相關問題 176
13.1 MySQL SQL Mode簡介 176
13.2 SQL Mode的常見功能 178
13.3 常用的SQL Mode 180
13.4 SQL Mode在遷移中如何使用 182
13.5 小結 183
第 14章 MySQL分區 184
14.1 分區概述 184
14.2 分區類型 185
14.2.1 RANGE分區 187
14.2.2 LIST 分區 188
14.2.3 COLUMNS 分區 189
14.2.4 HASH分區 192
14.2.5 KEY分區 195
14.2.6 子分區 196
14.2.7 MySQL分區處理NULL值的方式 197
14.3 分區管理 199
14.3.1 RANGE與LIST分區管理 199
14.3.2 HASH與KEY分區管理 205
14.3.3 交換分區 206
14.4 小結 208
第三部分 優化篇
第 15章 SQL優化 210
15.1 優化SQL語句的一般步驟 210
15.1.1 通過show status命令了解各種SQL的執行頻率 210
15.1.2 定位執行效率較低的SQL語句 211
15.1.3 通過EXPLAIN分析低效SQL的執行計劃 211
15.1.4 通過show profile分析SQL 216
15.1.5 通過trace分析優化器如何選擇執行計劃 219
15.1.6 確定問題并采取相應的優化措施 220
15.2 索引問題 220
15.2.1 索引的存儲分類 220
15.2.2 MySQL如何使用索引 222
15.2.3 查看索引使用情況 231
15.3 兩個簡單實用的優化方法 231
15.3.1 定期分析表和檢查表 232
15.3.2 定期優化表 233
15.4 常用SQL的優化 233
15.4.1 大批量插入數據 234
15.4.2 優化INSERT語句 235
15.4.3 優化ORDER BY語句 235
15.4.4 優化GROUP BY語句 239
15.4.5 優化JOIN操作 239
15.4.6 優化嵌套查詢 243
15.4.7 MySQL如何優化OR條件 245
15.4.8 優化分頁查詢 246
15.4.9 使用SQL提示 248
15.5 直方圖 250
15.5.1 什么是直方圖 250
15.5.2 直方圖的分類 251
15.5.3 直方圖實例應用 252
15.5.4 直方圖小結 256
15.6 使用查詢重寫 256
15.7 常用SQL技巧 259
15.7.1 正則表達式的使用 259
15.7.2 巧用RAND()提取隨機行 261
15.7.3 利用GROUP BY的WITH ROLLUP子句 262
15.7.4 用BIT GROUP FUNCTIONS做統計 263
15.7.5 數據庫名、表名大小寫問題 265
15.7.6 使用外鍵需要注意的問題 265
15.8 小結 266
第 16章 鎖問題 267
16.1 MySQL鎖概述 267
16.2 MyISAM表鎖 268
16.2.1 查詢表級鎖爭用情況 268
16.2.2 MySQL表級鎖的鎖模式 268
16.2.3 如何加表鎖 269
16.2.4 并發插入(Concurrent Inserts) 271
16.2.5 MyISAM的鎖調度 272
16.3 InnoDB鎖問題 273
16.3.1 背景知識 273
16.3.2 獲取InnoDB行鎖爭用情況 275
16.3.3 InnoDB的行鎖模式及加鎖方法 276
16.3.4 InnoDB行鎖實現方式 279
16.3.5 Next-Key鎖 283
16.3.6 恢復和復制的需要,對InnoDB鎖機制的影響 284
16.3.7 InnoDB在不同隔離級別下的一致性讀及鎖的差異 287
16.3.8 什么時候使用表鎖 288
16.3.9 關于死鎖 289
16.4 小結 294
第 17章 優化MySQL Server 296
17.1 MySQL體系結構概覽 296
17.2 MySQL內存管理及優化 298
17.2.1 內存優化原則 298
17.2.2 MyISAM內存優化 298
17.2.3 InnoDB內存優化 301
17.2.4 調整用戶服務線程排序緩存區 305
17.3 InnoDB log機制及優化 305
17.3.1 InnoDB重做日志 305
17.3.2 innodb_flush_log_at_trx_commit的設置 306
17.3.3 設置log file size,控制檢查點 307
17.3.4 調整innodb_log_buffer_size 308
17.4 調整MySQL并發相關的參數 308
17.4.1 調整max_connections,提高并發連接 308
17.4.2 調整back_log 309
17.4.3 調整table_open_cache 309
17.4.4 調整thread_cache_size 309
17.4.5 innodb_lock_wait_timeout的設置 309
17.5 持久化全局變量 309
17.6 使用資源組 310
17.7 小結 312
第 18章 磁盤I/O問題 313
18.1 使用固態硬盤 313
18.2 使用磁盤陣列 314
18.2.1 常見RAID級別及其特性 314
18.2.2 如何選擇RAID級別 315
18.3 虛擬文件卷或軟RAID 315
18.4 使用Symbolic Links分布I/O 315
18.5 禁止操作系統更新文件的atime屬性 316
18.6 調整I/O調度算法 316
18.7 RAID卡電池充放電問題 318
18.7.1 什么是RAID卡電池充放電 318
18.7.2 RAID卡緩存策略 319
18.7.3 如何應對RAID卡電池充放電帶來的I/O性能波動 321
18.8 NUMA架構優化 322
18.9 小結 325
第 19章 應用優化 326
19.1 優化數據表的設計 326
19.1.1 優化表的數據類型 326
19.1.2 通過拆分提高表的訪問效率 328
19.1.3 逆規范化 329
19.2 數據庫應用優化 330
19.2.1 使用連接池 330
19.2.2 減少對MySQL的訪問 330
19.2.3 負載均衡 331
19.3 小結 331
第 20章 PS/SYS數據庫 332
20.1 Performance Schema庫 332
20.1.1 如何開啟PS庫 332
20.1.2 PS庫的表 333
20.2 SYS 庫 335
20.2.1 SYS庫的對象 335
20.2.2 SYS對象的實際應用 336
20.3 小結 340
第 21章 故障診斷 341
21.1 故障診斷和處理的原則 341
21.2 故障處理一般流程 343
21.2.1 故障發現 343
21.2.2 故障定位 345
21.2.3 故障解決 346
21.3 典型故障案例 349
21.3.1 案例1 349
21.3.2 案例2 353
21.4 小結 356
第四部分 管理維護篇
第 22章 MySQL高級安裝和升級 358
22.1 Linux/UNIX平臺下的安裝 358
22.1.1 安裝包比較 358
22.1.2 安裝二進制包 359
22.1.3 安裝源碼包 359
22.1.4 參數設置方法 360
22.2 升級MySQL 361
22.3 小結 363
第 23章 MySQL中的常用工具 364
23.1 MySQL官方工具 364
23.1.1 mysql(客戶端連接工具) 364
23.1.2 mysqladmin(MySQL管理工具) 371
23.1.3 mysqlbinlog(日志管理工具) 371
23.1.4 mysqlcheck(表維護工具) 378
23.1.5 mysqldump(數據導出工具) 380
23.1.6 mysqlpump(并行的數據導出工具) 384
23.1.7 mysqlimport(數據導入工具) 385
23.1.8 mysqlshow(數據庫對象查看工具) 385
23.1.9 perror(錯誤代碼查看工具) 387
23.1.10 MySQL Shell 387
23.2 Percona工具包 390
23.2.1 pt-archiver(數據歸檔工具) 391
23.2.2 pt-config-diff(參數對比工具) 393
23.2.3 pt-duplicate-key-checker(檢查冗余索引工具) 394
23.2.4 pt-find(查找工具) 395
23.2.5 pt-heartbeat(監控主從延遲工具) 395
23.2.6 pt-kill(殺死會話工具) 397
23.2.7 pt-online-schema-change(在線修改表結構工具) 397
23.2.8 pt-query-digest(SQL分析工具) 399
23.2.9 pt-table-checksum(數據檢驗工具) 401
23.2.10 pt-table-sync(數據同步工具) 402
23.3 小結 403
第 24章 MySQL日志 404
24.1 錯誤日志 404
24.2 二進制日志 405
24.2.1 日志的位置和格式 405
24.2.2 日志的讀取 406
24.2.3 日志的刪除 407
24.2.4 日志的事件 411
24.2.5 日志閃回 412
24.3 查詢日志 415
24.3.1 日志的位置和格式 415
24.3.2 日志的讀取 416
24.4 慢查詢日志 416
24.4.1 文件位置和格式 416
24.4.2 日志的讀取 417
24.4.3 Anemometer簡介 419
24.5 小結 421
第 25章 備份與恢復 422
25.1 備份/恢復策略 422
25.2 邏輯備份和恢復 422
25.2.1 備份 423
25.2.2 完全恢復 425
25.2.3 基于時間點恢復 427
25.2.4 基于位置恢復 427
25.2.5 并行恢復 427
25.3 物理備份和恢復 428
25.3.1 冷備份和熱備份 428
25.3.2 MyISAM存儲引擎的熱備份 429
25.3.3 InnoDB存儲引擎的熱備份 429
25.4 表的導入和導出 438
25.4.1 導出 438
25.4.2 導入 442
25.5 小結 445
第 26章 MySQL權限與安全 446
26.1 MySQL權限管理 446
26.1.1 權限系統的工作原理 446
26.1.2 權限表的存取 446
26.1.3 賬號管理 449
26.2 MySQL安全問題 461
26.2.1 操作系統相關的安全問題 461
26.2.2 數據庫相關的安全問題 463
26.3 其他安全設置選項 471
26.3.1 密碼插件 471
26.3.2 safe-user-create 472
26.3.3 表空間加密 473
26.3.4 skip-grant-tables 474
26.3.5 skip-networking 474
26.3.6 skip-show-database 475
26.4 小結 475
第 27章 MySQL監控 476
27.1 如何選擇一個監控方案 476
27.1.1 選擇何種監控方式 476
27.1.2 如何選擇適合自己的監控工具 477
27.2 常用的網絡監控工具 477
27.2.1 Open-Falcon簡介 477
27.2.2 Nagios簡介 479
27.2.3 Zabbix簡介 480
27.2.4 幾種常見開源軟件比較 481
27.3 Zabbix 部署 481
27.3.1 Zabbix Server軟件安裝 482
27.3.2 Zabbix Server配置與啟動 482
27.3.3 配置Zabbix Web服務端 483
27.3.4 Zabbix Agent安裝和配置 485
27.3.5 PMP插件介紹和部署 486
27.3.6 Zabbix Web端操作 489
27.4 性能醫生orzdba 491
27.4.1 orzdba安裝 491
27.4.2 orzdba使用 492
27.5 小結 492
第 28章 MySQL常見問題和應用技巧 493
28.1 忘記MySQL的root密碼 493
28.2 數據目錄磁盤空間不足的問題 494
28.3 mysql.sock丟失后如何連接數據庫 495
28.4 從mysqldump文件抽取需要恢復的表 496
28.5 使用innobackupex備份恢復單表 497
28.6 分析BINLOG,找出寫的熱點表 498
28.7 在線DDL 499
28.8 小結 502
第 29章 自動化運維系統的開發 503
29.1 MySQL自動化運維背景 503
29.2 CMDB系統搭建 504
29.2.1 CMDB數據庫 504
29.2.2 批量管理系統 505
29.2.3 后臺API 511
29.3 任務調度系統 515
29.3.1 Celery安裝 515
29.3.2 Celery任務部署 516
29.3.3 Flower監控 518
29.4 客戶端搭建 519
29.4.1 Vue.js簡介 519
29.4.2 Vue項目搭建 520
29.5 自動化運維平臺實戰 525
29.5.1 搭建CMDB 525
29.5.2 搭建任務調度平臺 528
29.5.3 搭建客戶端 529
29.5.4 項目演示 532
29.6 小結 532
第五部分 架構篇
第30章 MySQL復制 534
30.1 復制概述 534
30.1.1 復制中的各類文件 536
30.1.2 3種復制方式 537
30.1.3 復制的4種常見架構 540
30.2 復制搭建 543
30.2.1 異步復制 543
30.2.2 多線程復制 547
30.2.3 增強半同步復制 553
30.3 GTID(Global Transaction Identifier) 558
30.3.1 格式與存儲 558
30.3.2 gtid_purged 561
30.3.3 復制搭建 565
30.3.4 主從切換 571
30.3.5 常見問題 572
30.4 主要復制啟動選項 576
30.4.1 log-slave-updates 576
30.4.2 read-only/super_read_only 576
30.4.3 指定復制的數據庫或者表 577
30.4.4 slave-skip-errors 579
30.5 日常管理維護 579
30.5.1 查看從庫復制狀態和進度 579
30.5.2 主從復制問題集錦 580
30.5.3 多主復制時的自增長變量沖突問題 582
30.5.4 如何提高復制的性能 584
30.6 小結 588
第31章 高可用架構 589
31.1 MHA架構 589
31.1.1 安裝部署MHA 591
31.1.2 應用連接配置 598
31.1.3 自動failover 605
31.1.4 網絡問題觸發的failover操作 614
31.1.5 手動failover 614
31.1.6 在線進行切換 615
31.1.7 修復宕掉的Master 617
31.2 MGR架構 617
31.2.1 安裝部署MGR 618
31.2.2 監控 625
31.2.3 primary成員切換 626
31.2.4 重要特性 628
31.2.5 常見問題 629
31.3 InnoDB Cluster 636
31.3.1 安裝部署 637
31.3.2 初始化MySQL Router 642
31.3.3 集群Metadata 643
31.3.4 集群成員角色切換 644
31.3.5 集群刪除/增加節點 646
31.3.6 重新加入節點 648
31.4 小結 649
第32章 MySQL中間件 650
32.1 MySQL Router 650
32.1.1 MySQL Router的安裝 651
32.1.2 MySQL Router的初始化 653
32.1.3 MySQL Router策略驗證 656
32.2 Cetus架構 658
32.2.1 Cetus的安裝配置 659
32.2.2 Cetus的使用 670
32.2.3 Cetus日志文件 674
32.2.4 Cetus的后端管理 675
32.2.5 Cetus的路由策略 678
32.2.6 常見問題 681
32.3 小結 682
《深入淺出MySQL:數據庫開發、優化與管理維護(第3版)》源自網易公司多位資深數據庫專家數年的經驗總結和MySQL數據庫的使用心得,在之前版本的基礎之上,基于MySQL 5.7版本進行了內容升級,同時也對MySQL 8.0的重要功能進行了介紹。除了對原有內容的更新之外,本書還新增了作者在高可用架構、數據庫自動化運維,以及數據庫中間件方面的實踐和積累。
《深入淺出MySQL:數據庫開發、優化與管理維護(第3版)》分為“基礎篇”“開發篇”“優化篇”“管理維護篇”和“架構篇”5個部分,共32章。基礎篇面向MySQL的初學者,介紹了MySQL的安裝與配置、SQL基礎、MySQL支持的數據類型、MySQL中的運算符、常用函數等內容。開發篇面向的是MySQL設計和開發人員,內容涵蓋了表類型(存儲引擎)的選擇、選擇合適的數據類型、字符集、索引的設計和使用、開發常用數據庫對象、事務控制和鎖定語句、SQL中的安全問題、SQL Mode及相關問題、MySQL分區等。優化篇針對的是開發人員和數據庫管理人員,內容包括SQL優化、鎖問題、優化MySQL Server、磁盤I/O問題、應用優化、PS/SYS數據庫、故障診斷等內容。管理維護篇適合數據庫管理員閱讀,介紹了MySQL高級安裝和升級、MySQL中的常用工具、MySQL日志、備份與恢復、MySQL權限與安全、MySQL監控、MySQL常見問題和應用技巧、自動化運維系統的開發等內容。架構篇主要面向高級數據庫管理人員和數據庫架構設計師,內容包括MySQL復制、高可用架構、MySQL中間件等內容。
《深入淺出MySQL:數據庫開發、優化與管理維護(第3版)》內容實用,覆蓋廣泛,講解由淺入深,還提供了大量來自一線的工作實例,進一步提升了本書的實戰性和可操作性。本書適合數據庫管理人員、數據庫開發人員、系統維護人員、數據庫初學者及其他數據庫從業人員閱讀,也適合用作大中專院校相關專業師生的參考用書和相關培訓機構的培訓教材。
pagetop