-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
防疫期間 門市僅限取書, 不開放參觀
並提早到6點打烊, 星期日公休
8/3 新書到! 7/27 新書到! 7/20 新書到! 7/14 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

精通PostgreSQL 11(第2版)

( 簡體 字)
作者:[奧]漢斯·尤爾根·舍爾希 著 彭煜瑋 譯類別:1. -> 資料庫 -> PostgreSQL
譯者:
出版社:清華大學出版社精通PostgreSQL 11(第2版) 3dWoo書號: 52742
詢問書籍請說出此書號!

有庫存
NT定價: 595
折扣價: 559

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

譯者序:

前言:

本書幫助讀者用最新的PostgreSQL版本為企業應用構建動態數據庫方案,能讓數據庫分析師輕松地設計物理和技術方面的系統架構。
這本書從介紹PostgreSQL 11新近發布的特性開始,幫助讀者構建有效且能容錯的PostgreSQL應用。讀者將詳細學習PostgreSQL所有的先進特性,包括邏輯復制、數據庫集群、性能調優、監控以及用戶管理。還將接觸到PostgreSQL優化器、配置PostgreSQL獲得更高的速度、如何從Oracle轉移到PostgreSQL等內容。隨著學習的進一步深入,讀者將了解到事務、鎖、索引以及優化查詢改進性能等內容。
此外,讀者將學習到如何管理網絡安全及備份和復制的方法,同時還會了解PostgreSQL中有用的擴展,這樣就能優化使用大型數據庫時的速度和性能。
在讀完本書后,讀者將能通過實現高級管理任務來將數據庫的功能發揮到極限。
適合人群
本書講述了在PostgreSQL 11中新近引入的特性,向讀者展示了如何構建更好的PostgreSQL應用以及高效地管理PostgreSQL數據庫。讀者將掌握PostgreSQL的高級特性,并且獲得構建高效數據庫方案的必要技能。
本書所涵蓋的內容
第1章:PostgreSQL概述,介紹PostgreSQL以及PostgreSQL 11和其后版本中可用的新特性。
第2章:理解事務和鎖定,探索鎖定和事務,并且以最有效的方式利用PostgreSQL事務。
第3章:使用索引,討論索引、它們的類型、用例,以及如何實現自己的索引策略。
第4章:處理高級SQL、有關現代SQL及其特性。我們將探索集合以及它們的各種類型,并且編寫自己的集合。
第5章:日志文件和系統統計信息,解釋如何理解數據庫統計信息。
第6章:優化查詢性能,解釋如何編寫更好、更快的查詢。還將關注于了解本質上是什么讓一個查詢變得不好。
第7章:編寫存儲過程,更近距離地查看過程和函數之間的差別,還將討論存儲過程、使用擴展和其他更多PL/pgSQL的先進特性。
第8章:管理PostgreSQL的安全性,涵蓋了作為一個PostgreSQL開發者和DBA會面對的最常見的安全性問題。
第9章:處理備份和恢復,涵蓋了如何恢復備份以及處理部分轉儲的數據。
第10章:理解備份與復制,介紹PostgreSQL的事務日志,并且解釋我們可以用它做些什么來改進設置,讓系統更安全。
第11章:選取有用的擴展,討論一些最廣泛使用的PostgreSQL擴展。
第12章:檢修PostgreSQL,著重于處理一個未知的數據庫、確定關鍵瓶頸、處理存儲損壞以及檢查壞掉的復制品等內容。
第13章:遷移到PostgreSQL,即從其他數據庫遷移到PostgreSQL的方法。
如何從本書獲得最多
本書的讀者很廣泛。為了能跟得上本書中給出的例子,至少要有一些SQL甚至PostgreSQL的經驗(不過這并非硬性要求)。一般來說,如果能熟悉Unix命令行會更好。
慣例
本書中的一些約定如下。
代碼體文本(CodeInText):表示文本中的代碼單詞、數據庫表名、文件夾名稱、文件名、文件擴展名、路徑名、偽URL、用戶輸入以及Twitter的handle。這里有一個例子:“I will add one row to the table using the a simple INSERT command.”。
任何命令行輸入或者輸出都被寫成下面這樣:

test=# CREATE TABLE t_test (id int);
CREATE TABLE
test=# INSERT INTO t_test VALUES (0);
INSERT 0 1

粗體文本:表示新術語、重要的詞或者在屏幕上看到的詞。例如,菜單或者對話框中的詞會出現在這樣的文本中。這里有一個例子:Select System info from the Administration panel。
警告或重要的注記出現在這樣的一個標識旁。
提示和技巧出現在這樣的標識旁。
保持聯絡
非常歡迎來自讀者的反饋。
一般性反饋:如果您有關于此書任何方面的問題,請寫郵件到customercare@packtpub.com告訴我們,并且在郵件的主題中提及本書的標題。
勘誤:盡管我們已經非常細心地確保內容的準確性,但錯誤仍可能出現。如果您在本書中找到了錯誤,請您將錯誤報告給我們,我們將不勝感激。請訪問www.packt. com/submit-errata,選擇您的書,單擊Errata Submission Form鏈接,然后輸入勘誤的詳情。
盜版:如果您在互聯網上發現任何形式的對我們工作的非法復制品,請立即向我們提供位置地址或者網站名稱,我們將不勝感激。請通過copyright@packt.com聯系我們,并提供疑似盜版材料的鏈接。
如果您對成為作者感興趣:如果您在一個主題上擁有專業知識,并且有興趣寫作或者為著書做出貢獻,請訪問authors.packt.com。
書評
請留下您的評論。您既然已經閱讀使用過此書,為什么不在您購買它的網站上留下一條書評呢?潛在的讀者可能會看到并且使用您公正的意見來做出購買決定,我們在Packt上也能了解您對我們的產品的想法,我們的作者也能在他們的書上看到您的反饋。謝謝您!
更多有關Packt的信息,請訪問www.packt.com。
關于作者
漢斯?尤爾根?舍爾希(Hans-Ju?rgen Sch?nig)擁有18年的PostgreSQL工作經驗。他是一家名為Cybertec Sch?nig and Sch?nig GmbH的(www.postgresql-support.de)的PostgreSQL咨詢和服務公司的CEO。該公司已經成功地為全球數不盡的客戶提供了服務。在2000年創建Cybertec Sch?nig & Sch?nig GmbH之前,他是一家專注于奧地利勞動市場的私營調查公司的數據庫開發人員,當時他的主要工作是數據挖掘和預測模型。除本書之外,他已經編寫了好幾本有關PostgreSQL的書。
關于審稿人
謝爾頓?斯特勞奇(Sheldon Strauch)是一位具有20年軟件咨詢經驗的老手,他為IBM、Sears、Ernst and Young以及Kraft Foods等公司提供過咨詢服務。他擁有商業管理的學士學位,并且利用他的技術技能來改進商業的自我意識。他的興趣包括數據收集、管理和挖掘、地圖及繪圖、商業智能,以及面向持續改進的數據分析應用。他當前在Enova International公司工作,專注于端到端數據管理的開發以及挖掘,該公司是一家位于芝加哥的財務服務公司。在他的閑暇時間里,他喜歡藝術(特別是音樂)以及和他的妻子Marilyn一起旅行。
Packt正在尋找和你一樣的作者
如果你有興趣成為Packt的作者,請現在就訪問authors.packtpub.com并進行申請。我們已經與和你一樣的數千名開發者以及技術專家進行了合作,幫助他們把觀點分享給全球的技術社區。你可以進行一般申請,申請我們正在招募作者的特定熱門主題,或者提交你自己的想法。
內容簡介:

本書詳細闡述了與PostgreSQL 11相關的基本解決方案,主要包括PostgreSQL概述、理解事務和鎖定、使用索引、處理高級SQL、日志文件和系統統計信息、優化查詢性能、編寫存儲過程、管理PostgreSQL的安全性、處理備份和恢復、理解備份與復制、選取有用的擴展、檢修PostgreSQL、遷移到PostgreSQL等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。
本書適合作為高等院校計算機及相關專業的教材和教學參考書,也可作為相關開發人員的自學教材和參考手冊。
目錄:

第1章PostgreSQL概述1
1.1PostgreSQL11的新穎之處1
1.1.1理解新的數據庫管理功能1
1.1.2改良的索引及更好的優化3
1.1.3更好的緩存管理4
1.1.4增強的窗口函數5
1.1.5引入即時編譯6
1.1.6增強的分區機制6
1.1.7增加對存儲過程的支持7
1.1.8改進的ALTERTABLE8
1.2小結9
1.3常見問題9
第2章 理解事務和鎖定11
2.1運用PostgreSQL事務11
2.1.1處理事務中的錯誤13
2.1.2使用SAVEPOINT14
2.1.3事務性DDL15
2.2了解基本的鎖定16
2.2.1避免典型錯誤和顯式鎖定18
2.2.2考慮可替換的解決方案20
2.3使用FORSHARE和FORUPDATE20
2.4了解事務隔離級別23
2.5觀察死鎖和類似的問題25
2.6利用咨詢鎖27
2.7優化存儲以及控制清理28
2.7.1配置VACUUM和autovacuum29
2.7.2觀察工作中的VACUUM31
2.7.3通過利用snapshottooold來限制事務34
2.8小結34
2.9常見問題35
第3章使用索引37
3.1理解簡單的查詢和代價模型37
3.1.1使用EXPLAIN38
3.1.2深究PostgreSQL代價模型40
3.1.3部署簡單的索引42
3.1.4使用排序輸出43
3.1.5高效地使用位圖掃描45
3.1.6以一種聰明的方式使用索引46
3.2使用聚簇表改善速度48
3.2.1聚簇表51
3.2.2使用只用索引的掃描51
3.3了解額外的btree特性52
3.3.1組合索引52
3.3.2增加函數索引53
3.3.3減少空間消耗54
3.3.4在建立索引時添加數據56
3.4引入操作符類56
3.4.1創建新操作符58
3.4.2創建操作符類61
3.4.3測試自定義操作符類62
3.5了解PostgreSQL的索引類型62
3.5.1Hash索引63
3.5.2GiST索引63
3.5.3GIN索引66
3.5.4SP-GiST索引67
3.5.5BRIN索引67
3.5.6增加額外的索引68
3.6用模糊搜索實現更好的回答70
3.6.1利用pg_trgm70
3.6.2加速LIKE查詢72
3.6.3處理正則表達式73
3.7了解全文搜索73
3.7.1比較字符串74
3.7.2定義GIN索引75
3.7.3調試你的搜索76
3.7.4收集詞統計信息77
3.7.5利用排除操作符78
3.8小結79
3.9常見問題79
第4章處理高級SQL81
4.1引入分組集81
4.1.1裝載一些例子數據81
4.1.2應用分組集82
4.1.3組合分組集和FILTER子句85
4.2使用有序集86
4.3理解假想聚集88
4.4利用窗口函數和分析89
4.4.1劃分數據90
4.4.2在窗口中排序數據91
4.4.3使用滑動窗口92
4.4.4抽取窗口子句94
4.4.5使用內建窗口函數95
4.5編寫自己的聚集103
4.5.1創建簡單的聚集103
4.5.2為并行查詢增加支持106
4.5.3改進效率107
4.5.4編寫假想聚集109
4.6小結110
第5章日志文件和系統統計信息111
5.1收集運行時統計信息111
5.1.1檢查實時流量111
5.1.2檢查數據庫114
5.1.3檢查表117
5.1.4了解pg_stat_user_tables118
5.1.5深入研究索引119
5.1.6跟蹤后臺工作者120
5.1.7跟蹤、歸檔以及流121
5.1.8檢查SSL連接124
5.1.9實時檢查事務124
5.1.10跟蹤清理進度125
5.1.11使用pg_stat_statements126
5.2創建日志文件129
5.2.1定義日志目的地和輪轉130
5.2.2配置syslog1311
5.2.3記錄慢查詢132
5.2.4定義記錄什么以及怎么記錄132
5.3小結135
5.4常見問題135
第6章優化查詢性能137
6.1學習優化器的行為137
6.1.1評估連接選項138
6.1.2應用轉換140
6.1.3應用等值約束141
6.1.4窮舉搜索141
6.1.5全都試一遍142
6.1.6讓處理失敗142
6.1.7常量折疊144
6.1.8理解函數內聯144
6.1.9連接剪枝146
6.1.10加速集合操作147
6.2理解執行計劃148
6.2.1系統地了解計劃149
6.2.2發現問題151
6.3了解并且固定連接155
6.3.1正確使用連接155
6.3.2處理外連接156
6.3.3理解join_collapse_limit變量157
6.4啟用和禁用優化器設置158
6.5數據分區162
6.5.1創建分區162
6.5.2應用表約束164
6.5.3修改繼承的結構166
6.5.4在分區結構中移進和移出表166
6.5.5清理數據167
6.5.6理解PostgreSQL11.0的分區技術168
6.6為好的查詢性能調整參數170
6.6.1加速排序173
6.6.2加速管理任務175
6.7使用并行查詢176
6.7.1PostgreSQL能并行做哪些事情?179
6.7.2并行實踐180
6.8JIT編譯181
6.8.1配置JIT181
6.8.2運行查詢182
6.9小結184
第7章編寫存儲過程187
7.1了解存儲過程語言187
7.1.1了解基本原理—存儲過程與函數188
7.1.2函數剖析189
7.2了解各種存儲過程語言192
7.2.1PL/pgSQL簡介193
7.2.2用PL/pgSQL編寫存儲過程210
7.2.3PL/Perl簡介211
7.2.4PL/Python簡介218
7.3改進函數221
7.3.1減少函數調用次數222
7.4將函數用于多種目的223
7.5小結225
7.6常見問題225
第8章管理PostgreSQL的安全性227
8.1管理網絡安全性227
8.1.1理解綁定地址和連接228
8.1.2管理pg_hba.conf231
8.1.3處理實例級安全性235
8.1.4定義數據庫級安全性239
8.1.5調整方案級權限241
8.1.6使用表243
8.1.7處理列級安全性244
8.1.8配置默認特權245
8.2深入研究行級安全性—RLS247
8.3檢查權限251
8.4重新分配對象以及刪除用戶252
8.5小結254
8.6常見問題254
第9章處理備份和恢復255
9.1執行簡單的轉儲255
9.1.1運行pg_dump255
9.1.2傳遞口令和連接信息257
9.1.3抽取數據的子集259
9.2處理多種數據格式260
9.3重放備份261
9.4處理全局數據262
9.5小結263
9.6常見問題263
第10章理解備份與復制265
10.1理解事務日志265
10.1.1查看事務日志266
10.1.2理解檢查點267
10.1.3優化事務日志267
10.2事務日志歸檔與恢復269
10.2.1配置歸檔269
10.2.2配置pg_hba.conf文件270
10.2.3創建基礎備份271
10.2.4重放事務日志274
10.2.5清理事務日志歸檔277
10.3設置異步復制278
10.3.1執行基礎設置279
10.3.2停止和繼續復制281
10.3.3檢查復制以確保可用性282
10.3.4執行故障轉移以及理解時間線285
10.3.5管理沖突285
10.3.6讓復制更可靠287
10.4升級成同步復制288
10.5利用復制槽291
10.5.1處理物理復制槽291
10.5.2處理邏輯復制槽293
10.6使用CREATEPUBLICATION以及CREATESUBSCRIPTION296
10.7小結298
10.8常見問題299
第11章 選取有用的擴展301
11.1 理解擴展如何工作301
11.2利用contrib模塊305
11.2.1使用adminpack模塊305
11.2.2應用布隆過濾器307
11.2.3部署btree_gist和btree_gin309
11.2.4Dblink—考慮逐步淘汰310
11.2.5用file_fdw取得文件311
11.2.6使用pageinspect檢查存儲312
11.2.7用pg_buffercache研究緩沖314
11.2.8用pgcrypto加密數據316
11.2.9用pg_prewarm預熱緩沖316
11.2.10用pg_stat_statements檢查性能318
11.2.11用pgstattuple檢查存儲318
11.2.12用pg_trgm進行模糊搜索319
11.2.13用postgres_fdw連接遠程服務器320
11.3其他有用的擴展324
11.4小結325
第12章檢修PostgreSQL326
12.1著手處理一個陌生的數據庫326
12.2檢查pg_stat_activity326
12.2.1處理Hibernate語句328
12.2.2搞清楚查詢來自何處329
12.3檢查慢查詢329
12.3.1檢查個體查詢330
12.3.2用perf深入研究331
12.4檢查日志332
12.5檢查缺失的索引333
12.6檢查內存和I/O333
12.7了解值得注意的錯誤場景335
12.7.1面對clog損壞336
12.7.2理解檢查點消息337
12.7.3管理損壞的數據頁面337
12.7.4粗心的連接管理338
12.7.5與表膨脹作斗爭339
12.8小結339
12.9常見問題340
第13章 遷移到PostgreSQL341
13.1 把SQL語句遷移到PostgreSQL341
13.1.1 使用lateral連接341
13.1.2使用分組集342
13.1.3使用WITH子句—公共表表達式343
13.1.4使用WITHRECURSIVE子句344
13.1.5使用FILTER子句344
13.1.6使用窗口函數345
13.1.7使用有序集—WITHINGROUP子句346
13.1.8使用TABLESAMPLE子句346
13.1.9使用limit/offset347
13.1.10使用OFFSET348
13.1.11使用臨時表349
13.1.12在時間序列中匹配模式349
13.2從Oracle轉向PostgreSQL349
13.2.1使用oracle_fdw擴展移動數據349
13.2.2使用ora2pg從Oracle進行遷移351
13.2.3常見的陷阱353
13.2.4ora_migrator—快速從Oracle遷移到PostgreSQL355
13.3從MySQL或MariaDB轉向PostgreSQL355
13.3.1處理MySQL和MariaDB中的數據356
13.3.2遷移數據和模式360
13.4小結363
序: