定 價:¥79.00
作 者: | (日)鈴木啟修 |
出版社: | 電子工業(yè)出版社 |
叢編項: | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787121357091 | 出版時間: | 2019-06-01 | 包裝: | 平裝 |
開本: | 16開 | 頁數(shù): | 244 | 字?jǐn)?shù): |
目錄
第1章 數(shù)據(jù)庫集簇、數(shù)據(jù)庫和數(shù)據(jù)表... 1
1.1 數(shù)據(jù)庫集簇的邏輯結(jié)構(gòu)... 1
1.2 數(shù)據(jù)庫集簇的物理結(jié)構(gòu)... 2
1.2.1 數(shù)據(jù)庫集簇的布局... 3
1.2.2 數(shù)據(jù)庫布局... 4
1.2.3 表和索引相關(guān)文件的布局... 5
1.2.4 PostgreSQL中表空間的布局... 7
1.3 堆表文件的內(nèi)部布局... 8
1.4 讀寫元組的方式... 11
1.4.1 寫入堆元組... 11
1.4.2 讀取堆元組... 12
第2章 進(jìn)程和內(nèi)存架構(gòu)... 14
2.1 進(jìn)程架構(gòu)... 14
2.1.1 Postgres服務(wù)器進(jìn)程... 15
2.1.2 后端進(jìn)程... 15
2.1.3 后臺進(jìn)程... 16
2.2 內(nèi)存架構(gòu)... 17
2.2.1 本地內(nèi)存區(qū)域... 17
2.2.2 共享內(nèi)存區(qū)域
第3章 查詢處理... 19
3.1 概覽... 20
3.1.1 解析器... 20
3.1.2 分析器... 22
3.1.3 重寫器... 24
3.1.4 計劃器與執(zhí)行器... 25
3.2 單表查詢的代價估計... 27
3.2.1 順序掃描... 28
3.2.2 索引掃描... 29
3.2.3 排序... 36
3.3 創(chuàng)建單表查詢的計劃樹... 38
3.3.1 預(yù)處理... 41
3.3.2 找出代價最小的訪問路徑... 42
3.3.3 創(chuàng)建計劃樹... 51
3.4 執(zhí)行器如何工作... 55
3.5 連接... 57
3.5.1 嵌套循環(huán)連接... 57
3.5.2 歸并連接... 63
3.5.3 散列連接... 67
3.5.4 連接訪問路徑與連接節(jié)點... 73
3.6 創(chuàng)建多表查詢計劃樹... 76
3.6.1 預(yù)處理... 76
3.6.2 獲取代價最小的路徑... 77
3.6.3 獲取三表查詢代價最小的路徑... 81
參考文獻(xiàn)... 83
第4章 外部數(shù)據(jù)包裝器... 84
4.1 概述... 85
4.1.1 創(chuàng)建一棵查詢樹... 86
4.1.2 連接至遠(yuǎn)程服務(wù)器... 86
4.1.3 使用EXPLAIN命令創(chuàng)建計劃樹(可選)... 87
4.1.4 逆解析... 87
4.1.5 發(fā)送SQL命令并接收結(jié)果... 88
4.2 postgres_fdw的工作原理... 90
4.2.1 多表查詢... 91
4.2.2 排序操作... 97
4.2.3 聚合函數(shù)... 98
第5章 并發(fā)控制... 101
5.1 事務(wù)標(biāo)識... 103
5.2 元組結(jié)構(gòu)... 104
5.3 元組的增、刪、改... 106
5.3.1 插入... 106
5.3.2 刪除... 107
5.3.3 更新... 108
5.3.4 空閑空間映射... 109
5.4 提交日志... 110
5.4.1 事務(wù)狀態(tài)... 110
5.4.2 提交日志如何工作... 110
5.4.3 提交日志的維護(hù)... 111
5.5 事務(wù)快照... 111
5.6 可見性檢查規(guī)則... 114
5.6.1 t_xmin的狀態(tài)為ABORTED.. 115
5.6.2 t_xmin的狀態(tài)為IN_PROGRESS. 115
5.6.3 t_xmin的狀態(tài)為COMMITTED.. 116
5.7 可見性檢查... 118
5.7.1 可見性檢查的過程... 118
5.7.2 PostgreSQL可重復(fù)讀等級中的幻讀... 122
5.8 防止丟失更新... 122
5.8.1 并發(fā)UPDATE命令的行為... 123
5.8.2 例子... 125
5.9 可串行化快照隔離... 127
5.9.1 SSI實現(xiàn)的基本策略... 127
5.9.2 PostgreSQL的SSI實現(xiàn)... 128
5.9.3 SSI的原理... 129
5.9.4 假陽性的串行化異常... 132
5.10 需要的維護(hù)進(jìn)程... 134
參考文獻(xiàn)... 136
第6章 清理過程... 137
6.1 并發(fā)清理概述... 138
6.1.1 第一部分... 139
6.1.2 第二部分... 140
6.1.3 第三部分... 140
6.1.4 后續(xù)處理... 141
6.2 可見性映射... 141
6.3 凍結(jié)過程... 142
6.3.1 惰性模式... 142
6.3.2 迫切模式... 143
6.3.3 改進(jìn)迫切模式中的凍結(jié)過程... 146
6.4 移除不必要的CLOG文件... 147
6.5 自動清理守護(hù)進(jìn)程... 148
6.6 完整清理... 148
第7章 堆內(nèi)元組和僅索引掃描... 153
7.1 堆內(nèi)元組... 153
7.1.1 沒有HOT時的行更新... 153
7.1.2 HOT如何工作... 154
7.2 僅索引掃描... 157
第8章 緩沖區(qū)管理器... 160
8.1 概覽... 161
8.2 緩沖區(qū)管理器的結(jié)構(gòu)... 163
8.2.1 緩沖表... 164
8.2.2 緩沖區(qū)描述符... 165
8.2.3 緩沖區(qū)描述符層... 167
8.2.4 緩沖池... 169
8.3 緩沖區(qū)管理器鎖... 169
8.3.1 緩沖表鎖... 170
8.3.2 緩沖區(qū)描述符相關(guān)的鎖... 170
8.4 緩沖區(qū)管理器的工作原理... 174
8.4.1 訪問存儲在緩沖池中的頁面... 174
8.4.2 將頁面從存儲加載到空槽... 175
8.4.3 將頁面從存儲加載到受害者緩沖池槽... 176
8.4.4 頁面替換算法:時鐘掃描... 178
8.5 環(huán)形緩沖區(qū)... 180
8.6 臟頁刷盤... 181
第9章 WAL. 182
9.1 概述... 183
9.1.1 沒有WAL的插入操作... 183
9.1.2 插入操作與數(shù)據(jù)庫恢復(fù)... 184
9.1.3 整頁寫入... 186
9.2 事務(wù)日志與WAL段文件... 188
9.3 WAL段文件的內(nèi)部布局... 190
9.4 WAL記錄的內(nèi)部布局... 191
9.4.1 WAL記錄首部部分... 191
9.4.2 XLOG記錄的數(shù)據(jù)部分(9.4及更低版本)... 193
9.4.3 XLOG記錄的數(shù)據(jù)部分(9.5及更高版本)... 196
9.5 WAL記錄的寫入... 200
9.6 WAL寫入進(jìn)程... 203
9.7 PostgreSQL中的檢查點進(jìn)程... 203
9.7.1 檢查點進(jìn)程概述... 204
9.7.2 pg_crontrol文件... 205
9.8 PostgreSQL中的數(shù)據(jù)庫恢復(fù)... 206
9.9 WAL段文件管理... 209
9.9.1 WAL段切換... 209
9.9.2 WAL段管理(9.5及更高版本)... 209
9.9.3 WAL段管理(9.4及更低版本)... 211
9.10 持續(xù)歸檔與歸檔日志... 212
第10章 基礎(chǔ)備份與時間點恢復(fù)... 214
10.1 基礎(chǔ)備份... 215
10.1.1 pg_start_backup. 215
10.1.2 pg_stop_backup. 217
10.2 時間點恢復(fù)(PITR)的工作原理... 217
10.3 時間線與時間線歷史文件... 220
10.3.1 時間線標(biāo)識... 220
10.3.2 時間線歷史文件... 221
10.4 時間點恢復(fù)與時間線歷史文件... 222
第11章 流復(fù)制... 224
11.1 流復(fù)制的啟動... 225
11.2 如何實施流復(fù)制... 227
11.2.1 主從間的通信... 227
11.2.2 發(fā)生故障時的行為... 229
11.3 管理多個備庫... 229
11.3.1 同步優(yōu)先級與同步狀態(tài)... 229
11.3.2 主庫如何管理多個備庫... 230
11.3.3 發(fā)生故障時的行為... 231
11.4 備庫的故障檢測... 232