PostgreSQL數(shù)據(jù)庫 | 內(nèi)核實現(xiàn)解析

1.9萬

內(nèi)容簡介:

PostgreSQL是目前廣泛應(yīng)用的開源數(shù)據(jù)庫管理系統(tǒng)。本書從PostgreSQL數(shù)據(jù)庫的源代碼入手,深入分析了該數(shù)據(jù)庫管理系統(tǒng)的底層實現(xiàn)細(xì)節(jié),揭示了數(shù)據(jù)庫運(yùn)行的基本原理。本書的主要內(nèi)容包括:PostgreSQL數(shù)據(jù)庫的體系結(jié)構(gòu)、 存儲管理、索引機(jī)制、查詢編譯、查詢執(zhí)行、并發(fā)控制機(jī)制以及安全等。每個主題都引用了大量的數(shù)據(jù)結(jié)構(gòu)、圖表等進(jìn)行說明,使讀者對實現(xiàn)過程和機(jī)理一目了然。


前 言
第1章 PostgreSQL系統(tǒng)概述/1
1.1 PostgreSQL簡介及發(fā)展歷程/1
1.2 PostgreSQL的特性/2
1.3 PostgreSQL的應(yīng)用/3
1.4 PostgreSQL代碼結(jié)構(gòu)/3
1.5 安裝PostgreSQL/4
1.6 PostgreSQL數(shù)據(jù)庫命令/5
第2章 PostgreSQL的體系結(jié)構(gòu)/7
2.1 系統(tǒng)表/8
2.1.1 主要系統(tǒng)表功能及依賴關(guān)系/8
2.1.2 系統(tǒng)視圖/14
2.2 數(shù)據(jù)集簇/15
2.2.1 initdb的使用/17
2.2.2 postgres.bki/17
2.2.3 initdb的執(zhí)行過程/19
2.2.4 系統(tǒng)數(shù)據(jù)庫/20
2.3 PostgreSQL進(jìn)程結(jié)構(gòu)/21
2.4 守護(hù)進(jìn)程Postmaster/22
2.4.1 初始化內(nèi)存上下文/23
2.4.2 配置參數(shù)/23
2.4.3 創(chuàng)建監(jiān)聽套接字/28
2.4.4 注冊信號處理函數(shù)/29
2.4.5 輔助進(jìn)程啟動/31
2.4.6 裝載客戶端認(rèn)證文件/32
2.4.7 循環(huán)等待客戶連接請求/33
2.5 輔助進(jìn)程/34
2.5.1 SysLogger系統(tǒng)日志進(jìn)程/34
2.5.2 BgWriter后臺寫進(jìn)程/36
2.5.3 WalWriter預(yù)寫式日志寫進(jìn)程/38
2.5.4 PgArch預(yù)寫式日志歸檔進(jìn)程/40
2.5.5 AutoVacuum系統(tǒng)自動清理進(jìn)程/41
2.5.6 PgStat統(tǒng)計數(shù)據(jù)收集進(jìn)程/44
2.6 服務(wù)進(jìn)程Postgres/47
2.6.1 初始化內(nèi)存環(huán)境/48
2.6.2 配置運(yùn)行參數(shù)和處理客戶端傳遞的GUC參數(shù)/48
2.6.3 設(shè)置信號處理和信號屏蔽/48
2.6.4 初始化Postgres的運(yùn)行環(huán)境/49
2.6.5 創(chuàng)建內(nèi)存上下文并設(shè)置查詢?nèi)∠S點/50
2.6.6 循環(huán)等待處理查詢/50
2.6.7 簡單查詢的執(zhí)行流程/52
2.7 小結(jié)/53
第3章 存儲管理/54
3.1 存儲管理器的體系結(jié)構(gòu)/54
3.2 外存管理/57
3.2.1 表和元組的組織方式/58
3.2.2 磁盤管理器/60
3.2.3 VFD機(jī)制/61
3.2.4 空閑空間映射表/64
3.2.5 可見性映射表/69
3.2.6 大數(shù)據(jù)存儲/69
3.3 內(nèi)存管理/76
3.3.1 內(nèi)存上下文概述/77
3.3.2 高速緩存/84
3.3.3 緩沖池管理/94
3.3.4 IPC/102
3.4 表操作與元組操作/106
3.4.1 表操作/106
3.4.2 元組操作/112
3.5 VACUUM機(jī)制/115
3.5.1 VACUUM操作/115
3.5.2 Lazy VACUUM/116
3.5.3 Full VACUUM/118
3.6 ResourceOwner資源跟蹤/120
3.7 小結(jié)/122
第4章 索引/123
4.1 概述/123
4.1.1 索引方式/124
4.1.2 索引類型/125
4.1.3 索引相關(guān)系統(tǒng)表/125
4.1.4 索引的操作函數(shù)/129
4.2 B-Tree索引/131
4.2.1 B-Tree索引的組織結(jié)構(gòu)/132
4.2.2 B-Tree索引的操作/135
4.3 Hash索引/146
4.3.1 Hash索引的組織結(jié)構(gòu)/147
4.3.2 Hash索引的實現(xiàn)/153
4.4 GiST索引/161
4.4.1 GiST的擴(kuò)展性/161
4.4.2 GiST索引的組織結(jié)構(gòu)/162
4.4.3 GiST索引的實現(xiàn)/163
4.4.4 GiST索引實例/166
4.5 GIN索引/168
4.5.1 GIN索引的擴(kuò)展性/168
4.5.2 GIN索引的組織結(jié)構(gòu)/170
4.5.3 GIN索引的操作/172
4.6 TSearch2全文搜索/179
4.6.1 全文索引的創(chuàng)建/180
4.6.2 全文索引的查詢/184
4.6.3 查詢結(jié)果處理/185
4.7 小結(jié)/186
第5章 查詢編譯/187
5.1 概述/187
5.2 查詢分析/188
5.2.1 Lex和Yacc簡介/189
5.2.2 詞法和語法分析/193
5.2.3 語義分析/208
5.3 查詢重寫/218
5.3.1 規(guī)則系統(tǒng)/219
5.3.2 查詢重寫的處理操作/224
5.4 查詢規(guī)劃/228
5.4.1 總體處理流程/229
5.4.2 預(yù)處理/237
5.4.3 生成路徑/240
5.4.4 生成可優(yōu)化的MIN/MAX聚集計劃/253
5.4.5 生成普通計劃/254
5.4.6 生成完整計劃/257
5.4.7 整理計劃樹/259
5.4.8 實例分析/260
5.5 代價估計/266
5.5.1 代價估算公式/267
5.5.2 選擇度/268
5.5.3 單個表的掃描代價/268
5.5.4 兩個表的連接代價/268
5.6 PostgreSQL中的遺傳算法/268
5.6.1 個體編碼方式及種群初始化/269
5.6.2 適應(yīng)值/270
5.6.3 父體選擇策略/270
5.6.4 雜交算子/270
5.6.5 變異算子/275
5.6.6 終止條件/275
5.6.7 基于排列生成路徑/276
5.6.8 實例分析/276
5.7 小結(jié)/280
第6章 查詢執(zhí)行/282
6.1 查詢執(zhí)行策略/283
6.1.1 可優(yōu)化語句和數(shù)據(jù)定義語句/284
6.1.2 四種執(zhí)行策略/284
6.1.3 策略選擇的實現(xiàn)/286
6.1.4 Portal執(zhí)行的過程/288
6.2 數(shù)據(jù)定義語句執(zhí)行/289
6.2.1 數(shù)據(jù)定義語句執(zhí)行流程/289
6.2.2 執(zhí)行實例/290
6.2.3 主要的功能處理器函數(shù)/293
6.3 可優(yōu)化語句執(zhí)行/293
6.3.1 物理代數(shù)與處理模型/294
6.3.2 物理操作符的數(shù)據(jù)結(jié)構(gòu)/295
6.3.3 執(zhí)行器的運(yùn)行/297
6.3.4 執(zhí)行實例/301
6.4 計劃節(jié)點/303
6.4.1 控制節(jié)點/304
6.4.2 掃描節(jié)點/310
6.4.3 物化節(jié)點/319
6.4.4 連接節(jié)點/328
6.5 其他子功能介紹/334
6.5.1 元組操作/334
6.5.2 表達(dá)式計算/337
6.5.3 投影操作/340
6.6 小結(jié)/342
第7章 事務(wù)處理與并發(fā)控制/343
7.1 事務(wù)系統(tǒng)簡介/343
7.2 事務(wù)系統(tǒng)的上層/344
7.2.1 事務(wù)塊狀態(tài)/345
7.2.2 事務(wù)塊操作/346
7.3 事務(wù)系統(tǒng)的底層/348
7.3.1 事務(wù)狀態(tài)/348
7.3.2 事務(wù)操作函數(shù)/350
7.3.3 簡單查詢事務(wù)執(zhí)行過程實例/352
7.4 事務(wù)保存點和子事務(wù)/353
7.4.1 保存點實現(xiàn)原理/353
7.4.2 子事務(wù)/353
7.5 兩階段提交/354

聲音100評價1