-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

PostgreSQL指南:內幕探索

( 簡體 字)
作者:馮若航,劉陽明,張文升類別:1. -> 資料庫 -> PostgreSQL
譯者:
出版社:電子工業出版社PostgreSQL指南:內幕探索 3dWoo書號: 51264
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:5/1/2019
頁數:244
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121357091
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

推薦序




PostgreSQL已獲得DB-Engines排行榜2017年和2018年的“年度數據庫”稱號,發展速度迅猛,PostgreSQL被廣泛應用的主要原因在于PostgreSQL和Oracle一樣,特別適合于非常復雜的企業應用場景,代替Oracle的位置。同時PostgreSQL的開源協議允許用戶非常友好地應用在自用業務、對外商用業務中,沒有法律風險,也不要求用戶開源等。
很多大型企業應用PostgreSQL也有數年,例如阿里巴巴、郵儲、平安、中興、蘇寧、亞信、探探等,長期的PostgreSQL數據庫應用使得公司內部的數據庫團隊在PostgreSQL的管理、開發、內核等各方面的經驗、人才都得到了大量的積累。
文升是我多年的好友,同時也是PostgreSQL核心組成員,為PostgreSQL中文技術社區做出了巨大的貢獻。
2019年,張文升及其技術團隊又要出書了,這次帶來的是《The Internals of PostgreSQL for Database Administrators and System Developers》一書的中文翻譯書籍,作者為日本PostgreSQL數據庫專家Suzuki,對數據庫的集群、架構、SQL處理、外部表接口、并發控制、垃圾回收、HOT、堆表、索引存儲結構、WAL日志、時間點恢復、流復制等原理進行了深入淺出的講解,對期望了解PG內部原理的開發者、管理員、架構師來說,無疑是一本非常好的入門書籍。
感謝譯者對PostgreSQL社區的付出,期待這本圖書的出版。

德哥
2019年3月
譯者序




相信選擇這本書的讀者,大多已經對PostgreSQL有所了解。本書從PostgreSQL的整體架構展開,依次介紹了各個功能模塊的來龍去脈,方便DBA(數據庫管理員)與數據庫系統開發人員了解數據庫內部原理、閱讀學習PostgreSQL源碼。
數據庫是信息系統的核心組件,關系型數據庫則是數據庫皇冠上的明珠,而PostgreSQL的頭銜是“世界上最先進的開源關系型數據庫”。PostgreSQL在各行各業的各種場景下都有著廣泛應用。但是會用只是“知其然”,知道背后的原理才能“知其所以然”。理解數據庫原理及其具體實現,能讓架構師以最小復雜度的代價實現所需的功能,讓程序員以最小復雜度的代價寫出更加高效可靠的代碼,讓DBA在遇到“疑難雜癥”時擁有精準的直覺與深刻的洞察。
數據庫是一個博大精深的領域,存儲、I/O、計算,無所不包。PostgreSQL可以視作關系型數據庫實現的典范,用100萬行不到的C代碼實現了功能如此豐富的軟件系統,非常凝練。它的每一個功能模塊都值得用一本甚至幾本書的篇幅去介紹。本書雖限于篇幅而無法一一深入所有細節,但它為讀者進一步深入理解PostgreSQL提供了一幅全局的概念地圖。讀者完全可以順著各個章節的線索,以點破面,深入挖掘源碼背后的設計思路。
我們偶然發現了本書的英文版本,讀完之后感覺受益匪淺。看到這么好的書沒有中文譯本,實在是遺憾,遂萌生了翻譯的念頭。譯者不才,愿為PostgreSQL在中國的發展貢獻一份力量,但鑒于水平有限,翻譯如有疏漏,還望讀者海涵。

作者序




中國的PostgreSQL用戶們:
你們好!
本書詳細解釋了PostgreSQL的內部工作細節,目標讀者為DBA與系統開發人員。理解數據庫內部機制很有挑戰,愿本書能在你們精通PostgreSQL的道路上有所助益。
本書能出中文版,我真的感到非常高興,我這樣認為是有原因的。
首先,這是我寫的書中第一本被翻譯的。當自己的書出版時,心情愉悅自不必說,而自己的作品能被翻譯出版,更是一件非常令人激動的事情。
其次,我收到了來自世界各地的電子郵件,請求將這本書翻譯成各種語言。實際上,至少有一半的郵件來自中國。許多郵件提及“這本書對中國PostgreSQL用戶而言很有幫助”,因此,我很高興終于能對他們的要求做出回應。
而最重要的原因與我的家族史有關。先父曾在中國的哈爾濱市住過幾年,此后他回到日本,我出生了。他患心臟病很長時間,因此在我的印象中,他的心情總是不好,除了提到一件事時。
當我還是孩子的時候,每晚睡覺前父親都會給我和妹妹講他在中國的經歷。在講這些經歷時,他總是顯得非常高興,經常說中國人民幫助了他。
他的故事給我留下了深刻的印象,當然也影響了我的人生。因為這些故事,我從小就對這個世界和未知的事物有強烈的好奇心,而我的好奇心也引領我走入軟件工程領域。現在,我已經在中國出版了第一本書。簡而言之,這是一個關于在日本家庭與中國之間傳遞愛的故事。
我很高興終于可以回報中國人民了。當然,這本書只是一份很小的禮物,然而我想充滿感激之情地將它獻給您。
2017年,我有幸訪問中國,親眼目睹了中國令人驚嘆的發展。對我而言,這是一次非常難忘的經歷。我希望能再去中國,如果有機會,我還想在中國工作。
無論如何,讓我們享受PostgreSQL吧!


鈴木啟修
2018年11月
內容簡介:

本書介紹了 PostgreSQL 內部的工作原理,包括數據庫對象的邏輯組織與物理實現,進程與內存的架構。并依次剖析了幾個重要的子系統:查詢處理、外部數據包裝器、并發控制、清理過程、緩沖 區管理、WAL、備份及流復制。本書為 DBA 與系統開發者提供了一幅全景概念地圖,有助于讀者形 成對數據庫實現的整體認識,亦可作為深入學習 PostgreSQL 源代碼的導讀手冊,對于理解數據庫原 理與 PostgreSQL 內部實現大有裨益。 本書適合數據庫開發人員及相關領域的研究人員、數據庫 DBA 及高等院校相關專業的學生閱讀。


目錄:

第1章 數據庫集簇、數據庫和數據表 1
1.1 數據庫集簇的邏輯結構 1
1.2 數據庫集簇的物理結構 2
1.2.1 數據庫集簇的布局 3
1.2.2 數據庫布局 4
1.2.3 表和索引相關文件的布局 5
1.2.4 PostgreSQL中表空間的布局 7
1.3 堆表文件的內部布局 8
1.4 讀寫元組的方式 11
1.4.1 寫入堆元組 11
1.4.2 讀取堆元組 12
第2章 進程和內存架構 14
2.1 進程架構 14
2.1.1 Postgres服務器進程 15
2.1.2 后端進程 15
2.1.3 后臺進程 16
2.2 內存架構 17
2.2.1 本地內存區域 17
2.2.2 共享內存區域 18


第3章 查詢處理 19
3.1 概覽 20
3.1.1 解析器 20
3.1.2 分析器 22
3.1.3 重寫器 24
3.1.4 計劃器與執行器 25
3.2 單表查詢的代價估計 27
3.2.1 順序掃描 28
3.2.2 索引掃描 29
3.2.3 排序 36
3.3 創建單表查詢的計劃樹 38
3.3.1 預處理 41
3.3.2 找出代價最小的訪問路徑 42
3.3.3 創建計劃樹 51
3.4 執行器如何工作 55
3.5 連接 57
3.5.1 嵌套循環連接 57
3.5.2 歸并連接 63
3.5.3 散列連接 67
3.5.4 連接訪問路徑與連接節點 73
3.6 創建多表查詢計劃樹 76
3.6.1 預處理 76
3.6.2 獲取代價最小的路徑 77
3.6.3 獲取三表查詢代價最小的路徑 81
參考文獻 83
第4章 外部數據包裝器 84
4.1 概述 85
4.1.1 創建一棵查詢樹 86
4.1.2 連接至遠程服務器 86
4.1.3 使用EXPLAIN命令創建計劃樹(可選) 87
4.1.4 逆解析 87
4.1.5 發送SQL命令并接收結果 88
4.2 POSTGRES_FDW的工作原理 90
4.2.1 多表查詢 91
4.2.2 排序操作 97
4.2.3 聚合函數 98
第5章 并發控制 101
5.1 事務標識 103
5.2 元組結構 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 事務狀態 110
5.4.2 提交日志如何工作 110
5.4.3 提交日志的維護 111
5.5 事務快照 111
5.6 可見性檢查規則 114
5.6.1 t_xmin的狀態為ABORTED 115
5.6.2 t_xmin的狀態為IN_PROGRESS 115
5.6.3 t_xmin的狀態為COMMITTED 116
5.7 可見性檢查 118
5.7.1 可見性檢查的過程 118
5.7.2 PostgreSQL可重復讀等級中的幻讀 122
5.8 防止丟失更新 122
5.8.1 并發UPDATE命令的行為 123
5.8.2 例子 125
5.9 可串行化快照隔離 127
5.9.1 SSI實現的基本策略 127
5.9.2 PostgreSQL的SSI實現 128
5.9.3 SSI的原理 129
5.9.4 假陽性的串行化異常 132
5.10 需要的維護進程 134
參考文獻 136
第6章 清理過程 137
6.1 并發清理概述 138
6.1.1 第一部分 139
6.1.2 第二部分 140
6.1.3 第三部分 140
6.1.4 后續處理 141
6.2 可見性映射 141
6.3 凍結過程 142
6.3.1 惰性模式 142
6.3.2 迫切模式 143
6.3.3 改進迫切模式中的凍結過程 146
6.4 移除不必要的CLOG文件 147
6.5 自動清理守護進程 148
6.6 完整清理 148
第7章 堆內元組和僅索引掃描 153
7.1 堆內元組 153
7.1.1 沒有HOT時的行更新 153
7.1.2 HOT如何工作 154
7.2 僅索引掃描 157
第8章 緩沖區管理器 160
8.1 概覽 161
8.2 緩沖區管理器的結構 163
8.2.1 緩沖表 164
8.2.2 緩沖區描述符 165
8.2.3 緩沖區描述符層 167
8.2.4 緩沖池 169
8.3 緩沖區管理器鎖 169
8.3.1 緩沖表鎖 170
8.3.2 緩沖區描述符相關的鎖 170
8.4 緩沖區管理器的工作原理 174
8.4.1 訪問存儲在緩沖池中的頁面 174
8.4.2 將頁面從存儲加載到空槽 175
8.4.3 將頁面從存儲加載到受害者緩沖池槽 176
8.4.4 頁面替換算法:時鐘掃描 178
8.5 環形緩沖區 180
8.6 臟頁刷盤 181
第9章 WAL 182
9.1 概述 183
9.1.1 沒有WAL的插入操作 183
9.1.2 插入操作與數據庫恢復 184
9.1.3 整頁寫入 186
9.2 事務日志與WAL段文件 188
9.3 WAL段文件的內部布局 190
9.4 WAL記錄的內部布局 191
9.4.1 WAL記錄首部部分 191
9.4.2 XLOG記錄的數據部分(9.4及更低版本) 193
9.4.3 XLOG記錄的數據部分(9.5及更高版本) 196
9.5 WAL記錄的寫入 200
9.6 WAL寫入進程 203
9.7 POSTGRESQL中的檢查點進程 203
9.7.1 檢查點進程概述 204
9.7.2 pg_crontrol文件 205
9.8 POSTGRESQL中的數據庫恢復 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 持續歸檔與歸檔日志 212
第10章 基礎備份與時間點恢復 214
10.1 基礎備份 215
10.1.1 pg_start_backup 215
10.1.2 pg_stop_backup 217
10.2 時間點恢復(PITR)的工作原理 217
10.3 時間線與時間線歷史文件 220
10.3.1 時間線標識 220
10.3.2 時間線歷史文件 221
10.4 時間點恢復與時間線歷史文件 222
第11章 流復制 224
11.1 流復制的啟動 225
11.2 如何實施流復制 227
11.2.1 主從間的通信 227
11.2.2 發生故障時的行為 229
11.3 管理多個備庫 229
11.3.1 同步優先級與同步狀態 229
11.3.2 主庫如何管理多個備庫 230
11.3.3 發生故障時的行為 231
11.4 備庫的故障檢測 232
序: