PostgreSQL 修煉之道:從小工到專家, 2/e

唐成

  • 出版商: 機械工業
  • 出版日期: 2020-09-01
  • 售價: $774
  • 貴賓價: 9.5$735
  • 語言: 簡體中文
  • 頁數: 632
  • 裝訂: 平裝
  • ISBN: 7111665031
  • ISBN-13: 9787111665038
  • 相關分類: PostgreSQLSQL
  • 立即出貨 (庫存 < 4)

買這商品的人也買了...

商品描述

本書分為四大部分,分別為準備篇、基礎篇、提高篇和配套開源軟件及架構篇。
準備篇為沒有數據庫基礎的讀者準備的,
如果讀者已經具備了一定的數據庫基礎,可以跳過其中的一些內容。
基礎篇介紹了PostgreSQL數據庫中的一些基礎內容,
讀者學習完此篇可以完成基本的PostgreSQL數據庫的日常操作工作。
提高篇講解了一些更深的內容,如PostgreSQL的一些技術內幕、
特色功能、優化等方面的內容,讀者仔細閱讀此篇以便早日成為PostgreSQL數據庫高手。
第三方開源軟件及架構篇講解了與PostgreSQL數據庫配套使用的一些常用的開源軟件及架構設計方面的內容,
通過閱讀此篇,可以提高讀者的眼界和數據庫架構設計能力。

目錄大綱

前言
第一篇準備篇
第1章PostgreSQL簡介2
1.1什麼是PostgreSQL 2
1.1.1 PostgreSQL的發展歷史2
1.1.2 PostgreSQL數據庫的優勢4
1.1.3 PostgreSQL應用現狀和發展趨勢5
1.2 PostgreSQL數據庫與其他數據庫的對比6
1.2.1 PostgreSQL與MySQL數據庫的對比6
1.2.2 PostgreSQL與Oracle數據庫的對比8
1.3小結8

第2章PostgreSQL的安裝與配置9
2.1從發行版本安裝9
2.1.1 Red Hat/CentOS下的安裝方法10
2.1.2 Windows下的安裝方法12
2.1.3從發行版本安裝總結18
2.2從源碼安裝18
2.2.1編譯安裝過程簡介18
2.2.2下載源代碼18
2.2.3編譯及安裝20
2.2.4 PostgreSQL的配置22
2.2.5創建數據庫實例23
2.2.6安裝contrib目錄下的工具23
2.2.7啟動和停止數據庫23
2.2.8編譯安裝過程中的常見問題及解決方法24
2.3 PostgreSQL的簡單配置25
2.3.1 pg_hba.conf的配置26
2.3.2修改監聽的IP和端口26
2.3.3數據庫日誌相關參數26
2.3.4內存參數的設置27
2.4 PostgreSQL的安裝技巧27
2.4.1不想把數據庫實例創建到“/var/lib/pgsql”目錄下27
2.4.2如何使用較大的數據塊提高I/O性能29
2.4.3打開數據塊的checksum功能29
2.5小結30

第3章SQL入門31
3.1 SQL語句語法簡介31
3.1.1語句的分類31
3.1.2詞法結構31
3.2 DDL語句32
3.2.1建表語句32
3.2.2刪除表語句34
3.3 DML語句34
3.3.1插入語句34
3.3 .2更新語句35
3.3.3刪除語句35
3.4查詢語句36
3.4.1單表查詢語句36
3.4.2過濾條件的查詢36
3.4.3排序37
3.4.4分組查詢38
3.4.5多表關聯查詢38
3.4.6子查詢40
3.5其他SQL語句42
3.5.1 INSERT ... SELECT語句42
3.5.2 UNION語句42
3.5.3 TRUNCATE TABLE語句43
3.6小結43

第二篇基礎篇
第4章psql工具46
4.1 psql介紹46
4.2 psql的簡單使用46
4.3 psql的常用命令48
4.3.1 “\h”命令49
4.3.2 “\d”命令49
4.3.3指定客戶端字符集的命令52
4.3.4格式化輸出的\pset命令52
4.3.5 “\x”命令55
4.3.6執行存儲在外部文件中的SQL命令56
4.3.7編輯命令56
4.3.8輸出信息的“\echo”命令57
4.3.9其他命令58
4.4 psql的使用技巧59
4.4.1歷史命令與補全功能59
4.4.2自動提交技巧59
4.4.3如何得到psql中快捷命令執行的實際SQL 60
4.5小結62

第5章數據類型63
5.1數據類型介紹63
5.1.1數據類型的分類63
5.1.2數據類型的輸入與轉換65
5.2布爾類型65
5.2.1布爾類型介紹65
5.2.2布爾類型的操作符67
5.3數值類型68
5.3.1數值類型介紹68
5.3 .2整數類型68
5.3.3精確的小數類型69
5.3.4浮點數類型70
5.3.5序列類型70
5.3.6貨幣類型70
5.3.7數學函數和操作符71
5.4字符串類型73
5.4.1字符串類型介紹73
5.4.2字符串函數和操作符73
5.5二進制數據類型76
5.5.1二進制數據類型介紹76
5.5.2二進制數據類型轉義表示76
5.5.3二進制數據類型的函數77
5.6位串類型78
5.6.1位串類型介紹78
5.6.2位串類型的使用方法78
5.6.3位串的操作符及函數79
5.7日期/時間類型80
5.7.1日期/時間類型介紹80
5.7.2日期輸入81
5.7.3時間輸入82
5.7.4特殊值84
5.7.5函數和操作符列表84
5.7.6時間函數85
5.7.7 extract和date_part函數89
5.8枚舉類型90
5.8.1枚舉類型的使用90
5.8.2枚舉類型說明91
5.8.3枚舉類型的函數92
5.9幾何類型92
5.9.1幾何類型概況93
5.9.2幾何類型的輸入93
5.9.3幾何類型的操作符98
5.9.4幾何類型的函數106
5.10網絡地址類型107
5.10.1網絡地址類型概況107
5.10.2 inet與cidr類型107
5.10.3 macaddr類型110
5.10.4網絡地址類型的操作符110
5.10.5網絡地址類型的函數111
5.11複合類型112
5.11.1複合類型的定義112
5.11.2複合類型的輸入113
5.11.3訪問複合類型114
5.11.4修改複合類型114
5.11.5複合類型的輸入輸出115
5.12 xml類型116
5.12.1 xml類型的輸入116
5.12.2字符集的問題117
5.12.3 xml類型函數118
5.13 JSON類型124
5.13.1 JSON類型簡介124
5.13.2 JSON類型的輸入與輸出125
5.13.3 JSON類型的操作符126
5.13.4 JSON類型的函數127
5.13.5 JSON類型的索引132
5.14 Range類型136
5.14.1 Range類型簡介136
5.14.2創建Range類型138
5.14.3 Range類型的輸入與輸出138
5.14.4 Range類型的操作符141
5.14.5 Range類型的函數142
5.14.6 Range類型的索引和約束142
5.15數組類型143
5.15.1數組類型的聲明143
5.15.2如何輸入數組值144
5.15.3訪問數組146
5.15.4修改數組148
5.15.5數組的操作符149
5.15.6數組的函數151
5.16偽類型153
5.17其他類型154
5.17.1 UUID類型154
5.17.2 pg_lsn類型154
5.18小結155

第6章邏輯結構管理156
6.1數據庫邏輯結構介紹156
6.2數據庫基本操作156
6.2.1創建數據庫156
6.2.2修改數據庫157
6.2.3刪除數據庫158
6.2.4常見問題及解答158
6.3模式159
6.3.1什麼是模式159
6.3.2模式的使用159
6.3.3公共模式161
6.3.4模式的搜索路徑161
6.3.5模式的權限162
6.3.6模式的可移植性162
6.4表163
6.4.1創建表163
6.4.2表的存儲屬性165
6.4.3臨時表167
6.4.4 UNLOGGED表170
6.4.5默認值170
6.4.6約束171
6.4.7修改表175
6.4.8表繼承179
6.4.9通過表繼承實現分區表181
6.4.10聲明式分區186
6.5觸發器188
6.5.1創建觸發器189
6.5.2語句級觸發器與行級觸發器190
6.5.3 BEFORE觸發器與AFTER觸發器193
6.5.4刪除觸發器194
6.5.5觸發器的行為194
6.5.6觸發器函數中的特殊變量195
6.6事件觸發器196
6.6.1創建事件觸發器198
6.6.2修改事件觸發器201
6.7表空間201
6.7.1什麼是表空間201
6.7.2表空間的使用方法201
6.8視圖202
6.8.1什麼是視圖202
6.8.2創建視圖203
6.8.3可更新視圖204
6.9索引207
6.9.1索引簡介207
6.9.2索引的分類207
6.9.3創建索引208
6.9. 4並發創建索引209
6.9.5修改索引211
6.9.6刪除索引212
6.10用戶及權限管理213
6.10.1用戶和角色213
6.10.2創建用戶和角色213
6.10.3權限的管理214
6.10.4函數和触發器的權限219
6.10.5權限的總結220
6.10.6權限的示例220
6.11事務、並發和鎖220
6.11.1什麼是ACID 221
6.11.2 DDL事務221
6.11.3事務的使用方法221
6.11.4 SAVEPOINT 222
6.11.5事務隔離級別224
6.11.6兩階段提交225
6.11.7鎖機制226
6.11.8死鎖及防範230
6.11.9表級鎖命令LOCK TABLE 230
6.11.10行級鎖命令231
6.11.11鎖的查看231
6.12小結238

第7章PostgreSQL的核心架構239
7.1進程及內存結構239
7.1.1進程和內存架構圖239
7.1.2主進程Postmaster介紹240
7.1.3 Logger系統日誌進程介紹241
7.1.4 BgWriter後台寫進程介紹241
7.1.5 WalWriter預寫式日誌寫進程介紹241
7.1.6 PgArch歸檔進程242
7.1.7 AutoVacuum自動清理進程242
7.1.8 PgStat統計數據收集進程242
7.1.9共享內存242
7.1.10本地內存243
7.2存儲結構243
7.2.1邏輯存儲結構243
7.2.2軟件目錄結構244
7.2.3物理存儲結構244
7.2.4表空間的目錄246
7.3應用程序訪問接口247
7.3.1訪問接口總體圖247
7.3.2不同編程語言的PostgreSQL驅動介紹248
7.4小結249

第8章服務管理250
8.1服務的啟停及原理250
8.1.1服務的啟停方法250
8.1.2 pg_ctl工具251
8.1.3信號255
8.1.4 postgres及單用戶模式255
8.2服務配置介紹256
8.2.1配置參數256
8.2.2連接配置項259
8.2.3內存配置項261
8.2.4預寫式日誌的配置項262
8.2.5錯誤報告和日誌項264
8.3訪問控製配置文件268
8.3.1 pg_hba.conf文件268
8.3.2認證方法介紹269
8.3.3認證方法實戰270
8.4備份和還原271
8.4.1邏輯備份271
8.4.2 pg_dump命令272
8.4.3 pg_restore命令275
8.4.4 pg_dump和pg_restore應用示例278
8.4.5物理備份279
8.4.6使用LVM快照進行熱備份279
8.5常用的管理命令282
8.5.1查看系統信息的常用命令282
8.5.2系統維護常用命令288
8.6小結289

第三篇提高篇
第9章PostgreSQL執行計劃292
9.1執行計劃的解釋292
9.1.1 EXPLAIN命令292
9.1.2 EXPLAIN輸出結果解釋293
9.1.3 EXPLAIN使用示例294
9.1.4全表掃描297
9.1.5索引掃描297
9.1.6位圖掃描297
9.1.7條件過濾298
9.1.8嵌套循環連接299
9.1.9散列連接299
9.1.10合併連接300
9.2與執行計劃相關的配置項301
9.2.1 ENABLE_*參數301
9.2.2 COST基準值參數301
9.2.3基因查詢優化的參數302
9.2.4其他執行計劃配置項303
9.3統計信息的收集304
9.3.1統計信息收集器的配置項304
9.3.2 SQL執行的統計信息輸出304
9.3.3手動收集統計信息305
9.4小結306

第10章PostgreSQL中的技術內幕307
10.1表中的系統字段307
10.1.1 oid 308
10.1.2 ctid 310
10.1.3 xmin、xmax、cmin、cmax 311
10.2多版本並發控制312
10.2.1多版本並發控制的原理312