注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡數(shù)據(jù)庫數(shù)據(jù)庫理論DBA實戰(zhàn)手記

DBA實戰(zhàn)手記

DBA實戰(zhàn)手記

定 價:¥169.00

作 者: 薛曉剛 等
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787111757665 出版時間: 2024-07-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字數(shù):  

內(nèi)容簡介

  本書是一本指導DBA進行數(shù)據(jù)庫開發(fā)和運維的實用手冊,本書共9章,包括漫談數(shù)據(jù)庫、如何提升數(shù)據(jù)庫性能、如何運維好數(shù)據(jù)庫、如何進行數(shù)據(jù)庫設計、如何做好數(shù)據(jù)庫之間的數(shù)據(jù)同步、認識HTAP技術、認識數(shù)據(jù)庫的功能原理、認識數(shù)據(jù)庫中的數(shù)學(邏輯與算法),以及DBA的日常:數(shù)據(jù)庫管理及開發(fā)的最佳實踐。另有附錄DBA雜談。本書內(nèi)容是資深DBA多年實踐經(jīng)驗的歸納總結,涵蓋DBA日常工作中的主要方面,通過剖析眾多的真實案例,并解讀原理、分享技巧、提供思路,內(nèi)容具備較強的啟發(fā)性和指導性。本書的受眾包括但不限于想要了解如何提升數(shù)據(jù)庫性能的應用開發(fā)人員、DBA、業(yè)務架構師、IT架構師、數(shù)據(jù)架構師、數(shù)據(jù)分析師、系統(tǒng)架構師、解決方案架構師和企業(yè)高級管理人員。

作者簡介

  薛曉剛,現(xiàn)任歐冶云商股份有限公司數(shù)據(jù)庫首席師,曾服務于政府、公安、交通、安防、金融、支付等行業(yè)。擁有Oracle、MySQL、PostgreSQL、TiDB、OceanBase、達夢等數(shù)據(jù)庫認證,是Oracle ACE-Pro ( Database )、PostgreSQL ACE Partner、騰訊云TVP、阿里云MVP、TiDB MVA、墨天輪MVP;Oracle OCP認證講師,MySQL OCP認證講師;ITPUB論壇內(nèi)存數(shù)據(jù)庫版主、核心專家、金牌顧問。ITPUB培訓專家百人團成員,國內(nèi)數(shù)據(jù)庫風云百人團成員,OceanBase數(shù)據(jù)庫觀察團團長,TiDB布道師、布道師組委會會員。中國信息通信研究院創(chuàng)新實驗室成員,開放原子開源基金會OpenTenBase工委會委員,機械工業(yè)出版社專家委員會委員。王明杰,德國布倫瑞克工業(yè)大學工學博士,現(xiàn)任職于歐冶云商股份有限公司,擔任物聯(lián)網(wǎng)技術一級首席,致力于物聯(lián)感知、機器視覺、智能自動化等新技術在鋼鐵行業(yè)供應鏈體系中的應用融合。負責編寫本書物聯(lián)網(wǎng)場景及時序數(shù)據(jù)庫的相關內(nèi)容。宋希,波爾多大學數(shù)學系博士,現(xiàn)任職于歐冶云商股份有限公司,資深算法工程師,主持搭建綜合平臺智能推薦系統(tǒng),參與需求預測、用戶畫像、在線交易壓力測試等多個項目,獲得多項專利。負責編寫本書的動態(tài)規(guī)劃的相關內(nèi)容。李歡,現(xiàn)任職于字節(jié)跳動,作為移動端音視頻開發(fā)工程師負責抖音直播連線架構設計,優(yōu)化抖音音視頻用戶體驗,提升直播連線的性能。負責本書移動端數(shù)據(jù)庫部分相關內(nèi)容的編寫。

圖書目錄

目錄
序言1
序言2
序言3
前言
第1章  漫談數(shù)據(jù)庫1
1.1  什么是數(shù)據(jù)庫2
1.2  數(shù)據(jù)庫發(fā)展史2
1.2.1  國外數(shù)據(jù)庫的歷史2
1.2.2  國內(nèi)數(shù)據(jù)庫的歷史4
1.3  數(shù)據(jù)庫的主要分類6
1.3.1  關系數(shù)據(jù)庫:傳統(tǒng)交易數(shù)據(jù)庫6
1.3.2  鍵值數(shù)據(jù)庫:基于KV鍵值對的內(nèi)存數(shù)據(jù)庫7
1.3.3  列式數(shù)據(jù)庫:列式存儲的分析型數(shù)據(jù)庫9
1.3.4  文檔型數(shù)據(jù)庫:松散型數(shù)據(jù)結構的數(shù)據(jù)庫10
1.3.5  圖數(shù)據(jù)庫:用于社交圖譜的數(shù)據(jù)庫11
1.3.6  時序數(shù)據(jù)庫:適用于物聯(lián)網(wǎng)場景的數(shù)據(jù)庫12
1.3.7  搜索引擎數(shù)據(jù)庫:全文索引的數(shù)據(jù)庫14
1.3.8  多模數(shù)據(jù)庫:具有多種數(shù)據(jù)庫模式的融合數(shù)據(jù)庫17
1.3.9  最容易忽視的數(shù)據(jù)庫—移動端數(shù)據(jù)庫19
1.4  數(shù)據(jù)庫應用的發(fā)展趨勢22
1.4.1  國外數(shù)據(jù)庫應用發(fā)展趨勢22
1.4.2  國內(nèi)數(shù)據(jù)庫應用發(fā)展趨勢24
1.5  數(shù)據(jù)庫與新興數(shù)字技術30
1.5.1  數(shù)據(jù)庫與大數(shù)據(jù)技術30
1.5.2  數(shù)據(jù)庫的延伸:區(qū)塊鏈、物聯(lián)網(wǎng)32
1.6  與數(shù)據(jù)庫長相廝守的DBA33
1.6.1  DBA的定義與內(nèi)涵33
1.6.2  DBA的工作職責34
1.6.3  DBA需要具備的能力35
1.6.4  DBA的價值35
1.6.5  DBA是可以做一輩子的職業(yè)36
第2章  如何提升數(shù)據(jù)庫性能38
2.1  通過索引提升性能39
2.1.1  索引的概念及原理39
2.1.2  索引的種類44
2.1.3  規(guī)避索引使用的誤區(qū)68
2.1.4  通過索引實現(xiàn)海量數(shù)據(jù)中的高效查詢70
2.1.5  自動化索引:數(shù)據(jù)庫自治的趨勢71
2.2  通過SQL優(yōu)化提升性能78
2.2.1  SQL優(yōu)化實現(xiàn)高速執(zhí)行任務79
2.2.2  慎用分頁有效提升性能86
2.2.3  從認知上杜絕低效SQL89
2.3  避免數(shù)據(jù)庫對象設計失誤91
2.3.1  避免不必要的多表關聯(lián)導致的低效查詢91
2.3.2  避免動態(tài)計算結果沒有單獨存儲導致的低效查詢93
2.3.3  避免沒有明確需求查詢條件導致的低效查詢97
2.3.4  避免過度分表98
2.4  從識別需求的合理性提升性能101
2.4.1  拒絕無效需求101
2.4.2  正確理解開發(fā)需求104
2.4.3  拒絕不合理的需求106
2.4.4  引導業(yè)務改善需求107
2.5  減少IO操作提升數(shù)據(jù)庫性能108
2.5.1  正確認識數(shù)據(jù)庫的性能108
2.5.2  減少IO交互—批量寫入數(shù)據(jù)(MySQL)110
2.5.3  減少IO交互—批量寫入數(shù)據(jù)(Oracle)122
2.5.4  減少IO交互—批量寫入數(shù)據(jù)(PostgreSQL)123
2.5.5  精簡架構127
第3章  如何運維好數(shù)據(jù)庫130
3.1  運維好數(shù)據(jù)庫的關鍵:處理故障131
3.1.1  常見的數(shù)據(jù)庫故障類型131
3.1.2  數(shù)據(jù)庫故障的危害132
3.2  分析處理數(shù)據(jù)庫故障的關鍵點133
3.2.1  分析數(shù)據(jù)庫故障的主要原因—SQL133
3.2.2  分析SQL的主要問題—處理速度慢134
3.2.3  分析數(shù)據(jù)庫參數(shù)對數(shù)據(jù)庫的影響134
3.2.4  分析硬件短板帶來的問題—IO吞吐能力與CPU計算能力135
3.3  數(shù)據(jù)庫故障處理的典型案例分析138
3.3.1  一次Elasticsearch誤刪除的故障分析139
3.3.2  一次配置文件丟失導致的MySQL數(shù)據(jù)庫故障分析141
3.3.3  一次In-Memory丟失引起的故障分析146
3.3.4  一次疑似分區(qū)查詢異常的故障分析150
3.3.5  一次數(shù)據(jù)庫歸檔導致的故障分析159
3.3.6  一次數(shù)據(jù)庫binlog寫入失敗的故障分析163
3.3.7  一次兩表關聯(lián)導致的故障分析165
3.3.8  數(shù)據(jù)庫連接數(shù)與連接復用不當?shù)墓收戏治?66
3.3.9  一次數(shù)據(jù)庫CPU使用率100%的故障分析168
3.3.10  一次數(shù)據(jù)庫索引不當引起的故障分析169
3.3.11  一次數(shù)據(jù)庫主從延遲過大的故障分析172
3.3.12  一次數(shù)據(jù)庫主從不一致的故障分析174
3.3.13  一次Redis數(shù)據(jù)庫無法啟動的故障分析182
3.3.14  一次MySQL數(shù)據(jù)庫數(shù)據(jù)類型不恰當導致的故障183
3.3.15  一次數(shù)據(jù)庫全表查詢的優(yōu)化187
第4章  如何進行數(shù)據(jù)庫設計197
4.1  數(shù)據(jù)庫都有哪些架構198
4.1.1  集中式架構198
4.1.2  分布式架構200
4.1.3  數(shù)據(jù)庫內(nèi)部的體系架構201
4.1.4 “煙囪”式的數(shù)據(jù)庫架構201
4.1.5  獨立業(yè)務線的數(shù)據(jù)庫架構202
4.2  根據(jù)實際場景選擇數(shù)據(jù)庫架構203
4.3  五個維度談數(shù)據(jù)庫選型203
4.3.1  從業(yè)務場景特征維度204
4.3.2  從數(shù)據(jù)規(guī)模大小維度204
4.3.3  從用戶自身開發(fā)團隊能力維度205
4.3.4  從用戶自身運維團隊能力維度205
4.3.5  從公司管理能力維度206
4.4  數(shù)據(jù)庫拆分的利與弊206
4.4.1  數(shù)據(jù)庫拆分的背景207
4.4.2  數(shù)據(jù)庫拆分的三大問題:一致性、數(shù)據(jù)關聯(lián)、數(shù)據(jù)同步208
4.4.3  分表帶來的問題:一致性、聚合、排序、擴縮容208
4.5  如何看待數(shù)據(jù)庫的合并210
4.5.1  為何要做數(shù)據(jù)庫合并210
4.5.2  數(shù)據(jù)庫合并的意義:降成本、提升穩(wěn)定性211
4.5.3  數(shù)據(jù)庫合并帶來的問題:雞蛋放在一個籃子里211
4.5.4  數(shù)據(jù)庫合并的前提:高質量SQL、硬件的進步、穩(wěn)定的基礎環(huán)境212
4.6  CAP理論與分布式數(shù)據(jù)庫212
4.6.1  CAP理論概述213
4.6.2  CAP理論的延展213
4.6.3  分庫分表不是分布式數(shù)據(jù)庫214
4.7  如何看待數(shù)據(jù)庫與中間件215
4.7.1  數(shù)據(jù)庫與中間件:上下游的“難兄難弟”215
4.7.2  中間件內(nèi)存溢出的原因:源頭還是數(shù)據(jù)庫215
4.7.3  適當減少數(shù)據(jù)庫與中間件的數(shù)量:避免不必要的故障節(jié)點216
第5章  如何做好數(shù)據(jù)庫之間的數(shù)據(jù)同步217
5.1  數(shù)據(jù)同步的作用218
5.1.1  實現(xiàn)數(shù)據(jù)傳輸218
5.1.2  實現(xiàn)數(shù)據(jù)匯聚218
5.1.3  實現(xiàn)數(shù)據(jù)遷移219
5.2  數(shù)據(jù)庫同步的分類219
5.2.1  同構數(shù)據(jù)庫的同步219
5.2.2  異構數(shù)據(jù)庫的同步219
5.2.3  數(shù)據(jù)庫到消息隊列的同步219
5.2.4  數(shù)據(jù)庫到Hadoop的數(shù)據(jù)同步219
5.3  同構數(shù)據(jù)庫數(shù)據(jù)同步的示例220
5.3.1  使用dblink實現(xiàn)Oracle數(shù)據(jù)庫之間的數(shù)據(jù)同步220
5.3.2  使用物化視圖實現(xiàn)遠程Oracle數(shù)據(jù)庫之間的數(shù)據(jù)同步226
5.3.3  使用插件實現(xiàn)MySQL數(shù)據(jù)庫之間的數(shù)據(jù)同步231
5.3.4  利用數(shù)據(jù)同步實現(xiàn)MySQL的版本升級234
5.3.5  采用多源復制的功能實現(xiàn)MySQL數(shù)據(jù)庫之間的數(shù)據(jù)同步239
5.3.6  采用主從模式實現(xiàn)PostgreSQL主從數(shù)據(jù)同步242
5.4  異構數(shù)據(jù)庫同步的實例—基于OGG248
5.4.1  CDC簡介248
5.4.2  OGG概述249
5.4.3  OGG微服務版的安裝部署249
5.4.4  使用OGG for Oracle實現(xiàn)Oracle數(shù)據(jù)庫之間的數(shù)據(jù)同步251
5.4.5  使用OGG for MySQL實現(xiàn)MySQL與異構數(shù)據(jù)庫的同步279
5.4.6  使用OGG for BigData實現(xiàn)大數(shù)據(jù)組件與異構數(shù)據(jù)庫的數(shù)據(jù)同步284
第6章  認識HTAP技術294
6.1  HTAP的概念及其價值295
6.1.1  HTAP:混合事物/分析處理295
6.1.2  HTAP的價值295
6.2  HTAP的幾種實現(xiàn)方式297
6.2.1  垂直方向的實現(xiàn):以Oracle數(shù)據(jù)庫為例297
6.2.2  水平方向的實現(xiàn):以MySQL、TiDB數(shù)據(jù)庫為例298
6.2.3  其他類型數(shù)據(jù)庫的實現(xiàn)方式298
第7章  認識數(shù)據(jù)庫的功能原理300
7.1  優(yōu)化器—基于統(tǒng)計學原理301
7.2  數(shù)據(jù)庫的查詢—火山模型316
7.3  數(shù)據(jù)庫AI—向量化319
7.4  編譯執(zhí)行323
第8章  認識數(shù)據(jù)庫中的數(shù)學(邏輯與算法)326
8.1  數(shù)據(jù)庫中的典型邏輯與算法327
8.1.1  從斐波那契數(shù)列到數(shù)據(jù)分析327
8.1.2  增加數(shù)據(jù)維度處理—減少關聯(lián)332
8.1.3  多表關聯(lián)算法—一對多與多對多336
8.1.4  排除處理算法—笛卡兒積341
8.1.5  函數(shù)算法—對SQL的影響348
8.2  動態(tài)規(guī)劃法在數(shù)據(jù)庫中的應用351
8.2.1  動態(tài)規(guī)劃原理1:爬樓梯351
8.2.2  動態(tài)規(guī)劃原理2:背包問題355
8.2.3  動態(tài)規(guī)劃的五部曲361
8.3  數(shù)據(jù)庫開發(fā)中的邏輯思維362
8.3.1  元數(shù)據(jù)的空與非空362
8.3.2  優(yōu)化器處理極值和極限:加速查詢速度369
8.3.3  并發(fā)處理熱點的邏輯:避免鎖371
8.3.4  減庫存的邏輯:從設計出發(fā)防止超賣373
第9章  DBA的日常:數(shù)據(jù)庫管理及開發(fā)的最佳實踐375
9.1  七個針對數(shù)據(jù)庫特性的最佳實踐376
9.1.1  Oracle的DML重定向376
9.1.2  Oracle的資源隔離381
9.1.3  MySQL的延遲復制—挽救誤刪除389
9.1.4  PostgreSQL的延遲復制395
9.1.5  數(shù)據(jù)庫對于磁盤IO吞吐的要求402
9.2  面向執(zhí)行器和優(yōu)化器的最佳實踐403
9.2.1  主流數(shù)據(jù)庫的事務異常處理機制對比(MySQL、PostgreSQL、Oracle)403
9.2.2  MySQL和達夢兩個數(shù)據(jù)庫優(yōu)化器的對比406
9.2.3  SQL語句的解析過程分析407
9.2.4  優(yōu)化器的多表關聯(lián)411
9.2.5  SQL使用in進行子查詢412
9.2.6  數(shù)據(jù)歸檔和數(shù)據(jù)遷移419
9.3  數(shù)據(jù)庫的復制(克?。┡c高可用受控切換的最佳實踐424
9.3.1  Oracle的PDB數(shù)據(jù)庫克隆425
9.3.2  MySQL克隆的關鍵點428
9.3.3  MySQL的MGR架構以及受控切換431
9.3.4  PostgreSQL的高可用切換434
9.3.5  Redis的高可用切換440
9.4  三個SQL編寫的最佳實踐445
9.4.1  關于MyBatis開發(fā)框架使用綁定變量的實踐445
9.4.2  使用exists的SQL語句的改寫451
9.4.3  設計上出發(fā)減少SQL的標量子查詢458
9.5  時序數(shù)據(jù)庫使用的最佳實踐463
9.5.1  時序數(shù)據(jù)庫的數(shù)據(jù)庫表設計463
9.5.2  時序數(shù)據(jù)庫的數(shù)據(jù)分析466
附錄  DBA雜談468

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號