新到貨2本75折
深入淺出MySQL:數據庫開發、優化與管理維護(第3版)

深入淺出MySQL:數據庫開發、優化與管理維護(第3版)

  • 定價:948
  • 優惠價:87825
  • 運送方式:
  • 臺灣與離島
  • 海外
  • 可配送點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
  • 可取貨點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
載入中...
  • 分享
 

內容簡介

深入淺出MySQL:數據庫開發、優化與管理維護(第3版)》源自網易公司多位數據庫專家數年的經驗總結和MySQL數據庫的使用心得,在之前版本的基礎之上,基於MySQL 5.7版本進行了內容升級,同時也對MySQL 8.0的重要功能進行了介紹。除了對原有內容的更新之外,本書還新增了作者在高可用架構、數據庫自動化運維,以及數據庫中介軟體方面的實踐和積累。

《深入淺出MySQL:數據庫開發、優化與管理維護(第3版)》分為“基礎篇”“開發篇”“優化篇”“管理維護篇”和“架構篇”5個部分,共32章。基礎篇面向MySQL的初學者,介紹了MySQL的安裝與配置、SQL基礎、MySQL支持的數據類型、MySQL中的運算子、常用函數等內容。開發篇面向的是MySQL設計和開發人員,內容涵蓋了表類型(存儲引擎)的選擇、選擇合適的數據類型、字元集、索引的設計和使用、開發常用數據庫物件、事務控制和鎖定語句、SQL中的安等
 

作者介紹

翟振興,網易技術專家,畢業于清華大學軟體學院,2005年入職網易,經歷了網易多個核心系統的數據庫設計和運維工作,對高併發下的數據庫架構變遷有著深刻的理解,目前主要對自動化運維、大數據、NewSQL等新技術有著較多的興趣和研究。

張恒岩,網易技術經理,2010年畢業于北京科技大學,在網易DBA組工作9年,負責過網易內部多個核心數據庫的運維以及數據庫自動化運維系統的設計和開發。在數據庫架構設計、性能優化、故障診斷以及自動化運維等方面有豐富的經驗。

崔春華,網易DBA,有10多年的數據庫技術領域從業經驗,深刻理解數據庫原理並具有豐富的實戰經驗,擁有Oracle 9i OCP證等。
 
 

目錄

第一部分 基礎篇
第1章 MySQL的安裝與配置2
1.1MySQL的下載2
1.1.1在Windows平臺下下載MySQL3
1.1.2在Linux平臺下下載MySQL3
1.2MySQL的安裝5
1.2.1在Windows平臺下安裝MySQL5
1.2.2在Linux平臺下安裝MySQL8
1.3MySQL的配置12
1.3.1Windows平臺下配置MySQL12
1.3.2Linux平臺下配置MySQL13
1.4啟動和關閉MySQL服務13
1.4.1在Windows平臺下啟動和關閉MySQL服務13
1.4.2在Linux平臺下啟動和關閉MySQL服務13
1.5小結14
第2章 SQL基礎15
2.1SQL簡介15
2.2(My)SQL使用入門15
2.2.1SQL分類15
2.2.2DDL語句16
2.2.3DML語句23
2.2.4DCL語句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.1CHAR和VARCHAR類型50
3.3.2BINARY和VARBINARY類型51
3.3.3ENUM類型51
3.3.4SET類型52
3.4JSON類型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.5JSON函數73
5.5.1創建JSON函數74
5.5.2查詢JSON函數75
5.5.3修改JSON的函數79
5.5.4查詢JSON元數據函數81
5.5.5JSON工具函數83
5.6窗口函數86
5.6.1ROW_NUMBER()87
5.6.2RANK()/DENSE_RANK()89
5.6.3PERCENT_RANK()/CUME_DIST()89
5.6.4NFILE(N)90
5.6.5NTH_VALUE(expr,N)91
5.6.6LAG(expr,N)/LEAD(expr,N)91
5.6.7FIRST_VALUE(expr)/LAST_VALUE(expr)92
5.6.8聚合函數作為視窗函數93
5.7其他常用函數93
5.8小結95

第二部分 開發篇
第6章 表類型(存儲引擎)的選擇98
6.1MySQL存儲引擎概述98
6.2各種存儲引擎的特性100
6.2.1MyISAM101
6.2.2InnoDB102
6.2.3MEMORY108
6.2.4MERGE109
6.2.5TokuDB111
6.3如何選擇合適的存儲引擎112
6.4小結113
第7章 選擇合適的數據類型114
7.1CHAR與VARCHAR114
7.2TEXT與BLOB115
7.3浮點數與定點數118
7.4日期類型選擇120
7.5小結120
第8章 字元集121
8.1字元集概述121
8.2Unicode簡述121
8.3漢字及一些常見字元集123
8.4怎樣選擇合適的字元集124
8.5MySQL支援的字元集簡介125
8.6MySQL字元集的設置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.5BTREE索引與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.1LOCK TABLES和UNLOCK TABLES160
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.1SQL注入簡介172
12.2應用開發中可以採取的應對措施173
12.2.1PrepareStatement+Bind-Variable173
12.2.2使用應用程式提供的轉換函數174
12.2.3自己定義函數進行校驗174
12.3小結175
第13章 SQL Mode及相關問題176
13.1MySQL SQL Mode簡介176
13.2SQL Mode的常見功能178
13.3常用的SQL Mode180
13.4SQL Mode在遷移中如何使用182
13.5小結183
第14章 MySQL分區184
14.1分區概述184
14.2分區類型185
14.2.1RANGE分區187
14.2.2LIST 分區188
14.2.3COLUMNS 分區189
14.2.4HASH分區192
14.2.5KEY分區195
14.2.6子分區196
14.2.7MySQL分區處理NULL值的方式197
14.3分區管理199
14.3.1RANGE與LIST分區管理199
14.3.2HASH與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分析SQL216
15.1.5通過trace分析優化器如何選擇執行計畫219
15.1.6確定問題並採取相應的優化措施220
15.2索引問題220
15.2.1索引的存儲分類220
15.2.2MySQL如何使用索引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.7MySQL如何優化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.1MySQL鎖概述267
16.2MyISAM表鎖268
16.2.1查詢表級鎖爭用情況268
16.2.2MySQL表級鎖的鎖模式268
16.2.3如何加表鎖269
16.2.4併發插入(Concurrent Inserts)271
16.2.5MyISAM的鎖調度272
16.3InnoDB鎖問題273
16.3.1背景知識273
16.3.2獲取InnoDB行鎖爭用情況275
16.3.3InnoDB的行鎖模式及加鎖方法276
16.3.4InnoDB行鎖實現方式279
16.3.5Next-Key鎖283
16.3.6恢復和複製的需要,對InnoDB鎖機制的影響284
16.3.7InnoDB在不同隔離級別下的一致性讀及鎖的差異287
16.3.8什麼時候使用表鎖288
16.3.9關於鎖死289
16.4小結294
第17章 優化MySQL Server296
17.1MySQL體系結構概覽296
17.2MySQL記憶體管理及優化298
17.2.1記憶體優化原則298
17.2.2MyISAM記憶體優化298
17.2.3InnoDB記憶體優化301
17.2.4調整使用者服務執行緒排序緩存區305
17.3InnoDB log機制及優化305
17.3.1InnoDB重做日誌305
17.3.2innodb_flush_log_at_trx_commit的設置306
17.3.3設置log file size,控制檢查點307
17.3.4調整innodb_log_buffer_size308
17.4調整MySQL併發相關的參數308
17.4.1調整max_connections,提高併發連接308
17.4.2調整back_log309
17.4.3調整table_open_cache309
17.4.4調整thread_cache_size309
17.4.5innodb_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虛擬文件卷或軟RAID315
18.4使用Symbolic Links分佈I/O315
18.5禁止作業系統更新檔的atime屬性316
18.6調整I/O調度演算法316
18.7RAID卡電池充放電問題318
18.7.1什麼是RAID卡電池充放電318
18.7.2RAID卡緩存策略319
18.7.3如何應對RAID卡電池充放電帶來的I/O性能波動321
18.8NUMA架構優化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.1Performance Schema庫332
20.1.1如何開啟PS庫332
20.1.2PS庫的表333
20.2SYS 庫335
20.2.1SYS庫的對象335
20.2.2SYS物件的實際應用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案例1349
21.3.2案例2353
21.4小結356

第四部分 管理維護篇
第22章 MySQL不錯安裝和升級358
22.1Linux/UNIX平臺下的安裝358
22.1.1安裝包比較358
22.1.2安裝二進位包359
22.1.3安裝源碼包359
22.1.4參數設置方法360
22.2升級MySQL361
22.3小結363
第23章 MySQL中的常用工具364
23.1MySQL官方工具364
23.1.1mysql(用戶端連接工具)364
23.1.2mysqladmin(MySQL管理工具)371
23.1.3mysqlbinlog(日誌管理工具)371
23.1.4mysqlcheck(表維護工具)378
23.1.5mysqldump(數據匯出工具)380
23.1.6mysqlpump(並行的數據匯出工具)384
23.1.7mysqlimport(數據導入工具)385
23.1.8mysqlshow(數據庫物件查看工具)385
23.1.9perror(錯誤代碼查看工具)387
23.1.10MySQL Shell387
23.2Percona工具包390
23.2.1pt-archiver(數據歸檔工具)391
23.2.2pt-config-diff(參數對比工具)393
23.2.3pt-duplicate-key-checker(檢查冗餘索引工具)394
23.2.4pt-find(查找工具)395
23.2.5pt-heartbeat(監控主從延遲工具)395
23.2.6pt-kill(殺死會話工具)397
23.2.7pt-online-schema-change(線上修改表結構工具)397
23.2.8pt-query-digest(SQL分析工具)399
23.2.9pt-table-checksum(數據檢驗工具)401
23.2.10pt-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.3Anemometer簡介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.2MyISAM存儲引擎的熱備份429
25.3.3InnoDB存儲引擎的熱備份429
25.4表的導入和匯出438
25.4.1匯出438
25.4.2導入442
25.5小結445
第26章 MySQL許可權與安全446
26.1MySQL許可權管理446
26.1.1許可權系統的工作原理446
26.1.2許可權表的存取446
26.1.3帳號管理449
26.2MySQL安全問題461
26.2.1作業系統相關的安全問題461
26.2.2數據庫相關的安全問題463
26.3其他安全設置選項471
26.3.1密碼外掛程式471
26.3.2safe-user-create472
26.3.3表空間加密473
26.3.4skip-grant-tables474
26.3.5skip-networking474
26.3.6skip-show-database475
26.4小結475
第27章 MySQL監控476
27.1如何選擇一個監控方案476
27.1.1選擇何種監控方式476
27.1.2如何選擇適合自己的監控工具477
27.2常用的網路監控工具477
27.2.1Open-Falcon簡介477
27.2.2Nagios簡介479
27.2.3Zabbix簡介480
27.2.4幾種常見開源軟體比較481
27.3Zabbix 部署481
27.3.1Zabbix Server482
27.3.2Zabbix Server配置與啟動482
27.3.3配置Zabbix Web服務端483
27.3.4Zabbix Agent安裝和配置485
27.3.5PMP外掛程式介紹和部署486
27.3.6Zabbix Web端操作489
27.4性能醫生orzdba491
27.4.1orzdba安裝491
27.4.2orzdba使用492
27.5小結492
第28章 MySQL常見問題和應用技巧493
28.1忘記MySQL的root密碼493
28.2數據目錄磁碟空間不足的問題494
28.3mysql.sock丟失後如何連接數據庫495
28.4從mysqldump檔抽取需要恢復的表496
28.5使用innobackupex備份恢復單表497
28.6分析BINLOG,找出寫的熱點表498
28.7線上DDL499
28.8小結502
第29章 自動化運維系統的開發503
29.1MySQL自動化運維背景503
29.2CMDB系統搭建504
29.2.1CMDB數據庫504
29.2.2批量管理系統505
29.2.3後臺API511
29.3任務調度系統515
29.3.1Celery安裝515
29.3.2Celery任務部署516
29.3.3Flower監控518
29.4用戶端搭建519
29.4.1Vue.js簡介519
29.4.2Vue項目搭建520
29.5自動化運維平臺實戰525
29.5.1搭建CMDB525
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.23種複製方式537
30.1.3複製的4種常見架構540
30.2複製搭建543
30.2.1非同步複製543
30.2.2多執行緒複製547
30.2.3增強半同步複製553
30.3GTID(Global Transaction Identifier)558
30.3.1格式與存儲558
30.3.2gtid_purged561
30.3.3複製搭建565
30.3.4主從切換571
30.3.5常見問題572
30.4主要複製啟動選項576
30.4.1log-slave-updates576
30.4.2read-only/super_read_only576
30.4.3指定複製的數據庫或者表577
30.4.4slave-skip-errors579
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.1MHA架構589
31.1.1安裝部署MHA591
31.1.2應用連接配置598
31.1.3自動failover605
31.1.4網路問題觸發的failover操作614
31.1.5手動failover614
31.1.6線上進行切換615
31.1.7修復宕掉的Master617
31.2MGR架構617
31.2.1安裝部署MGR618
31.2.2監控625
31.2.3primary成員切換626
31.2.4重要特性628
31.2.5常見問題629
31.3InnoDB Cluster636
31.3.1安裝部署637
31.3.2初始化MySQL Router642
31.3.3集群Metadata643
31.3.4集群成員角色切換644
31.3.5集群刪除/增加節點646
31.3.6重新加入節點648
31.4小結649
第32章 MySQL中介軟體650
32.1MySQL Router650
32.1.1MySQL Router的安裝651
32.1.2MySQL Router的初始化653
32.1.3MySQL Router策略驗證656
32.2Cetus架構658
32.2.1Cetus的安裝配置659
32.2.2Cetus的使用670
32.2.3Cetus日誌檔674
32.2.4Cetus的後端管理675
32.2.5Cetus的路由策略678
32.2.6常見問題681
32.3小結682
 

詳細資料

  • ISBN:9787115515391
  • 規格:平裝 / 682頁 / 19 x 26 x 3.41 cm / 普通級 / 初版
  • 出版地:中國

最近瀏覽商品

 

相關活動

  • 【科普、飲食、電腦】高寶電子書暢銷書展:人生就是選擇的總和,全展75折起
 

購物說明

溫馨提醒您:若您訂單中有購買簡體館無庫存/預售書或庫存於海外廠商的書籍,建議與其他商品分開下單,以避免等待時間過長,謝謝。

大陸出版品書況:因裝幀品質及貨運條件未臻完善,書況與台灣出版品落差甚大,封面老舊、出現磨痕、凹痕等均屬常態,故簡體字館除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。 

 

請注意,部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

調貨時間:若您購買海外庫存之商品,於您完成訂購後,商品原則上約45個工作天內抵台(若有將延遲另行告知)。為了縮短等待的時間,建議您將簡體書與其它商品分開訂購,以利一般商品快速出貨。 

若您具有法人身份為常態性且大量購書者,或有特殊作業需求,建議您可洽詢「企業採購」。 

退換貨說明 

會員所購買的商品均享有到貨十天的猶豫期(含例假日)。退回之商品必須於猶豫期內寄回。 

辦理退換貨時,商品必須是全新狀態與完整包裝(請注意保持商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性,切勿缺漏任何配件或損毀原廠外盒)。退回商品無法回復原狀者,恐將影響退貨權益或需負擔部分費用。 

訂購本商品前請務必詳閱商品退換貨原則

  • 翦商作者新作79折
  • 針灸匠張寶旬
  • 浪漫小說精選3本72折