|
Java电子书:PostgreSQL修炼之道:从小工到专家(第2版) 格式 pdf 电子书 PDF 电子书 Java吧 java8.com- ^) }1 T/ {/ N k Y) U
* h, `' o4 R6 q5 ~8 }3 h# @
$ A; }$ }" o7 v' g% w7 v4 v
编号:mudaima-P0362【Java吧 java8.com】1 b- [- h- v9 g3 ?8 M# I; [
& L. y: w! E# r1 I2 j7 q/ m
3 Q) h3 O* F4 x3 A. [ A
/ A4 _: E$ T2 D, u# t0 WJava电子书目录:篇 准备篇4 g. X4 Q, \! V+ ~2 d1 K
第1章 PostgreSQL简介 2
" Q/ H: l+ D" {, U/ ^7 o6 {" Z- @* I1.1 什么是PostgreSQL 2
6 h8 ^ t" p& q2 @% d5 ]1.1.1 PostgreSQL的发展历史 2
4 D* r) h! h2 b# v" b" \- _5 t1.1.2 PostgreSQL数据库的优势 49 \* I* v1 R. _
1.1.3 PostgreSQL应用现状和发展趋势 5
# V, O9 F" v% H7 b8 z2 H7 D: U: y1.2 PostgreSQL数据库与其他数据库的对比 66 H) D0 ^; ]1 f, }% W7 R' N
1.2.1 PostgreSQL与MySQL数据库的对比 65 W- }( u- }3 x" S: e# a6 g
1.2.2 PostgreSQL与Oracle数据库的对比 8
; W: `+ r7 m- W( {: a9 @1.3 小结 8$ S/ k3 a6 k/ d5 u* k) w6 ~! P/ U
第2章 PostgreSQL的安装与配置 9
* Y+ S0 Y2 i/ g h! D# G- ^# P; ?2.1 从发行版本安装 9
9 |/ |6 I' H; E, `9 q! b$ x, U" G2.1.1 Red Hat/CentOS下的安装方法 10
0 V" @, v( _/ F2.1.2 Windows下的安装方法 12
7 `3 q8 \3 g) |+ F$ c1 `# i& H2.1.3 从发行版本安装总结 18
0 G& S' o% C% v! J$ k2.2 从源码安装 18+ Q) Y/ X7 i2 ?1 j
2.2.1 编译安装过程简介 18% N5 m) Y% N G: Q" r' N! \3 O& Q
2.2.2 下载源代码 18
( R. \5 ~, I: V( `+ \) x2.2.3 编译及安装 20
9 J' G% x, f4 }2.2.4 PostgreSQL的配置 22
6 t" T2 Y9 Y: ]+ G1 ?. M2.2.5 创建数据库实例 23
" v) s5 [5 G! P2.2.6 安装contrib目录下的工具 23
* `* z+ k* e3 _( I8 t2.2.7 启动和停止数据库 23
! B; O# d4 y" w2.2.8 编译安装过程中的常见问题及解决方法 24
- m! j9 ~+ r; T8 C& [( u2.3 PostgreSQL的简单配置 25
8 ?: h. Y# C& j" M! A8 p& Y2.3.1 pg_hba.conf的配置 26, @/ l, u8 z! P$ ]- y
2.3.2 修改监听的IP和端口 26
/ y! ~. K" R3 a; ~7 L' j# h6 i2.3.3 数据库日志相关参数 26' [3 {5 [$ V* G8 ]0 {8 p
2.3.4 内存参数的设置 27
( p6 T5 `, j j# m G) ~, }2.4 PostgreSQL的安装技巧 277 _4 |$ P- a! f2 [1 R# r ?8 \
2.4.1 不想把数据库实例创建到“/var/lib/pgsql”目录下 27
) X& A: |1 P) X2.4.2 如何使用较大的数据块提高I/O性能 29
! B2 q- Y! t0 ?6 H3 A, m4 y2.4.3 打开数据块的checksum功能 29' W9 o/ `4 M1 e E% C' B
2.5 小结 30
; V% o' J7 |1 }第3章 SQL入门 31
0 W0 @. f) m5 I1 ]3 s5 ^# O3 X2 {0 l, Q- l3.1 SQL语句语法简介 31
O5 u4 D7 |5 V3 ?3.1.1 语句的分类 316 W: U7 A: j/ R
3.1.2 词法结构 31
/ b0 y- g' u) _$ ?: l2 ~3.2 DDL语句 32
$ T: c2 j1 i3 g, K# h3.2.1 建表语句 32" N3 z: w: K9 u0 W! W: {
3.2.2 删除表语句 34- P9 ~# [3 C, x4 ^; D9 D
3.3 DML语句 34
' F- @7 P5 L( v9 E, K% I% S3.3.1 插入语句 34
7 _1 ]! { A2 l/ Z5 T; [3.3.2 更新语句 35
: M+ V9 j5 l8 J- Y9 c3.3.3 删除语句 35$ A) o( I. g+ b+ Y0 y( q2 C
3.4 查询语句 36
& n& I3 D- t/ K4 \! R1 F" I4 Y' a* D3.4.1 单表查询语句 36* L& ~8 p0 n! v' S
3.4.2 过滤条件的查询 36
2 o+ Y7 O, \$ x9 \! b1 X3.4.3 排序 376 r+ D( `/ U$ p
3.4.4 分组查询 38
) r3 \5 j5 D7 W; n4 t' `( H3.4.5 多表关联查询 38
7 u9 Z+ K# P" k- y$ k) V9 m% w$ V3.4.6 子查询 404 \' d, V4 t' ~2 n2 A+ i. I
3.5 其他SQL语句 42- N2 W9 J0 Y t. G' E/ i0 F
3.5.1 INSERT ... SELECT语句 42. I5 {. p- u" _( E
3.5.2 UNION语句 42
; H& F6 d! F# S, s% I3.5.3 TRUNCATE TABLE语句 43
$ f- ?4 u& I6 G6 H7 V6 `8 k4 k3 P3.6 小结 43
8 N# d$ T$ S2 i8 K4 a8 I第二篇 基础篇 l: [- }; x# @0 U
第4章 psql工具 46
1 r5 _3 s( K0 K7 Y! z4.1 psql介绍 46. j8 \: q6 P+ F1 b4 u$ C
4.2 psql的简单使用 46
/ a9 n8 B$ c% w8 h1 e4.3 psql的常用命令 483 L0 l1 I/ Y& Q& V& a
4.3.1 “\h”命令 492 B' w% S& X4 Y, U% U; `5 i
4.3.2 “\d”命令 49* `& ^5 @" Q. F# h
4.3.3 指定客户端字符集的命令 52( w0 L. u \9 L$ H
4.3.4 格式化输出的\pset命令 52
+ B1 f& a0 v3 Q" O7 M9 I" e' p4.3.5 “\x”命令 554 ]* I; S+ W/ s- m, U- ]5 R& E: Q
4.3.6 执行存储在外部文件中的SQL命令 565 v9 n L, y: l( O9 p
4.3.7 编辑命令 56
4 q5 N8 u# n- s% ^7 m8 }4.3.8 输出信息的“\echo”命令 572 ]4 V: ?/ P" D6 w- d
4.3.9 其他命令 58, O5 x7 ?7 ^2 Y8 Q
4.4 psql的使用技巧 59/ N' d% S; _& O9 ` l- N; [2 |
4.4.1 历史命令与补全功能 59) j/ Z& z: X5 Q- M5 g, l
4.4.2 自动提交技巧 59
' q8 i) _9 Y3 Y# @6 H4.4.3 如何得到psql中快捷命令执行的实际SQL 60
1 W, x9 W3 _9 V2 p: e4.5 小结 62
+ {2 r& _) T: B. Y1 B# ~第5章 数据类型 63
. I% x' h4 _$ X( q2 V+ d0 x5.1 数据类型介绍 63) ~* C: p3 @6 g7 ?) @- V7 m
5.1.1 数据类型的分类 63
- c: W& ?0 t6 h5.1.2 数据类型的输入与转换 65
, c) x, ~$ [& }) y5.2 布尔类型 65+ j- ]. H) _8 m. P$ u: t' C
5.2.1 布尔类型介绍 65) F2 `" D/ u0 }3 r: y
5.2.2 布尔类型的操作符 674 n" T$ _, [2 @7 E) e
5.3 数值类型 68& e/ a% [' p1 s' z# e* c0 i
5.3.1 数值类型介绍 68
% r# j5 H! P6 y! A h( M5.3.2 整数类型 68
9 {% S( q, c# |' h5.3.3 精确的小数类型 694 R; m# D, D: s1 ^) x; O7 Q6 A- y" z
5.3.4 浮点数类型 70: V0 T/ A- Q# h: B
5.3.5 序列类型 708 m+ e, i x( {( i% }
5.3.6 货币类型 70
% K6 I$ [/ i$ G5.3.7 数学函数和操作符 71
2 U/ T3 U& v6 y! [% R5.4 字符串类型 73
# T: ^. f! v2 }5.4.1 字符串类型介绍 73
) ~2 n' @3 m7 J0 s7 z/ S5.4.2 字符串函数和操作符 73
* z( _2 Y! h ]% m, E5.5 二进制数据类型 76
; X% Y! U/ t) F0 v5.5.1 二进制数据类型介绍 762 w3 Y: D! d# E
5.5.2 二进制数据类型转义表示 76
" \% L: t$ }* n: N& E! q W5.5.3 二进制数据类型的函数 77
: K2 v3 z# X [# J2 [: S% K5.6 位串类型 78
7 f; s, Z# V" y; n, b; |5.6.1 位串类型介绍 78
& R0 M2 u+ a1 v" e1 U5.6.2 位串类型的使用方法 78
+ r1 G: J# e: p& R" j# C5.6.3 位串的操作符及函数 79
' A' m; i2 R) W/ ?0 l5.7 日期/时间类型 80- ~1 h/ A& a$ q/ ~/ T; G
5.7.1 日期/时间类型介绍 80
6 v3 U X# `! G% t; F5 n5.7.2 日期输入 81# u, `! ~- |. y! b( S
5.7.3 时间输入 82" B" k c5 Z6 D& c! q
5.7.4 特殊值 843 j" X6 S' N$ q2 [, J! z, O' y7 U
5.7.5 函数和操作符列表 84
6 v1 v4 {# q3 n( Y5.7.6 时间函数 85+ o7 ^7 G- f5 n4 J( y) X
5.7.7 extract和date_part函数 899 I9 X4 B& Q" R" f! o: n; L$ o2 ^
5.8 枚举类型 90
# k$ o l* M* a f5.8.1 枚举类型的使用 90
9 i) J: Z/ P& w: \5.8.2 枚举类型说明 919 P4 x1 }# O/ A' K9 r
5.8.3 枚举类型的函数 92% y8 \6 W% f; H2 \3 k2 \2 b& C8 b
5.9 几何类型 92
7 M1 w. U% _7 e5.9.1 几何类型概况 93! c- K8 u6 r/ w0 c) \* p. M0 r$ J
5.9.2 几何类型的输入 93
: m- M4 I0 S t z5.9.3 几何类型的操作符 98
; h7 x, x5 A% N( p5.9.4 几何类型的函数 106* j8 u" a8 ?9 r, j. N0 r
5.10 网络地址类型 107
7 B7 ?( f- @; n/ ]' K5.10.1 网络地址类型概况 1078 M" L! K+ Y& L4 d- b1 y$ C/ ?( O
5.10.2 inet与cidr类型 107
+ l0 H2 @7 j, o! Z7 J! m: U0 g5.10.3 macaddr类型 1104 [9 Q- F9 x1 A- z
5.10.4 网络地址类型的操作符 110
; f. y" j: @, h% E6 H/ i5.10.5 网络地址类型的函数 111
. Q, e" `: |/ k' z3 q. W, `3 d: F5.11 复合类型 112
6 e( R0 K; [1 M0 Q( W! X$ D; i5.11.1 复合类型的定义 112
# b- Q8 M7 a4 }" r5.11.2 复合类型的输入 113( X. B* \1 U9 U6 b0 x
5.11.3 访问复合类型 114
/ X% h* C9 [# i: t9 F# {( S' f+ O, _& a5.11.4 修改复合类型 114
! ?* F0 G0 @9 _3 M5.11.5 复合类型的输入输出 115
7 r# s4 U8 g) S f, [5.12 xml类型 116
! y$ \" Z& T- ]5 \# }5.12.1 xml类型的输入 116/ r# _3 s: @! b3 U) ~8 O: E# G; H. _
5.12.2 字符集的问题 117
5 W& R5 L" c& F: V: U+ P- Q/ `5.12.3 xml类型函数 118, I- s( h7 D; ?% Q' D
5.13 JSON类型 124
) x: |' ^. M1 Z4 x; f7 u5.13.1 JSON类型简介 124
" B6 X* E/ ], F5.13.2 JSON类型的输入与输出 125' V' G" k" w4 x( I% V
5.13.3 JSON类型的操作符 126
# g! N% q6 e4 d/ R5.13.4 JSON类型的函数 127# h! B! D# ^# `: D7 q) P
5.13.5 JSON类型的索引 132
8 N$ c" E6 j, S1 Z2 R5.14 Range类型 136
7 t' W; m, l- f; [* a5.14.1 Range类型简介 136, S3 \4 T$ r4 H {$ P/ Q
5.14.2 创建Range类型 138
@; l& y F1 k. o5.14.3 Range类型的输入与输出 138; K4 K2 f/ Z. g+ s. ^1 U0 @( f$ y
5.14.4 Range类型的操作符 141+ }/ m+ J W3 D* W4 D% L
5.14.5 Range类型的函数 142# B0 w) ~' S! F. @7 m
5.14.6 Range类型的索引和约束 142
" ~; q1 u0 y ^5.15 数组类型 143
8 @& W7 k" ]! I5.15.1 数组类型的声明 143
% D5 P5 e9 z: i k, b5.15.2 如何输入数组值 1443 V; i" o! Q0 F( C
5.15.3 访问数组 146
3 e4 u+ m, q6 t( ~ d5.15.4 修改数组 148% b2 n s7 x6 ]& w3 a$ i) S
5.15.5 数组的操作符 149
% b7 ]; P Y5 N& M) C% f5.15.6 数组的函数 151) R* ~6 Y+ j6 K* _" A$ I
5.16 伪类型 153* ~9 h1 U) A" Y9 _
5.17 其他类型 154
9 p* c3 L4 x7 F+ [$ O5.17.1 UUID类型 154( B7 m( G0 z6 D7 X) W% o% b
5.17.2 pg_lsn 类型 1541 v3 h: G* M( _. I) Q7 P7 P" l" c/ K
5.18 小结 155' N6 @& @2 E' C
第6章 逻辑结构管理 156
: }1 A4 w7 O- l" z) U! a/ B# x6.1 数据库逻辑结构介绍 156
8 z4 V) V W# j B6.2 数据库基本操作 1567 E7 ~7 s+ d: k' w4 u/ N
6.2.1 创建数据库 156
! ^7 M4 x* k M( I& l# M6.2.2 修改数据库 157
# V. ^4 {" t; @( ^6.2.3 删除数据库 1588 u5 ~1 G4 [% [ a
6.2.4 常见问题及解答 158
5 b2 E' T1 m% ~( A6.3 模式 1594 k5 S" O% X9 y, o
6.3.1 什么是模式 159
/ r, I) H* X6 K9 B" i- C% h' |6.3.2 模式的使用 1594 E6 Z- N$ u' P% D& ^
6.3.3 公共模式 161
1 d8 a# e: F" f3 w6.3.4 模式的搜索路径 161
. o" U2 K: i7 E" x5 f% J6.3.5 模式的权限 162
C# A4 s9 @$ ~6.3.6 模式的可移植性 1620 f2 X6 \) p. X$ f1 y
6.4 表 163: R' z& F3 M. O4 H. v- g
6.4.1 创建表 163+ k1 B3 ]' `* z& U. y
6.4.2 表的存储属性 165; e6 j7 I- j# C: ]7 j
6.4.3 临时表 167# s$ y$ G4 @( r& q/ y0 a& a6 q
6.4.4 UNLOGGED表 170
1 V% T, p- j2 D; r6.4.5 默认值 1707 ]) M. F& c0 _' r& c+ q$ T
6.4.6 约束 171
v1 e9 j q% j5 e8 q% B6.4.7 修改表 175
/ K4 |8 ]9 f. d8 f6.4.8 表继承 1790 G/ ^$ C/ s# J
6.4.9 通过表继承实现分区表 181
y2 |2 q& N0 Z- B7 p+ _# F6.4.10 声明式分区 186
/ H* F) ~3 G6 S; W4 M6.5 触发器 188
8 D% H5 _$ S+ l8 n6.5.1 创建触发器 189
) k6 I3 h: p! |6 `0 I2 M6.5.2 语句级触发器与行级触发器 190
5 n$ A, f/ B, Z- W2 | j0 Z6 `6.5.3 BEFORE触发器与AFTER触发器 193
$ P- ]& S* Y. V) f: E6.5.4 删除触发器 194
3 z6 X m+ d9 U5 q5 H/ q! P/ |4 ^6.5.5 触发器的行为 1941 o z+ }* Y. o- |/ c L3 J% `% o! w3 C
6.5.6 触发器函数中的特殊变量 1958 c" n8 K- z7 M; N
6.6 事件触发器 196
& ]4 Q1 _2 H+ s' _. T! f8 [6.6.1 创建事件触发器 198+ J+ q8 K6 s1 C A1 T7 N* H
6.6.2 修改事件触发器 201
q9 V! y2 F( ~1 O! ~, L6.7 表空间 201
d& n8 u7 `; p7 Q! ?/ _4 {6.7.1 什么是表空间 201) Z! A" a9 u [- N* A1 g+ N1 B2 i
6.7.2 表空间的使用方法 201
' N* L( A: C, X3 j6.8 视图 202- I8 m7 D- |- y. R( T
6.8.1 什么是视图 2029 h/ I7 q; `) r/ x. E
6.8.2 创建视图 203
2 [% k: K4 b4 K& P# w4 @6.8.3 可更新视图 204
: R d2 O3 c$ J' | H( J6.9 索引 207
5 j4 ]6 _7 ^$ F! \+ i: K) j3 Q6.9.1 索引简介 207
& R7 |, T3 J- k. \- S6.9.2 索引的分类 207
: ~0 h/ f$ H8 ]- S d' w6.9.3 创建索引 208' U1 A% P) w& k9 q/ R3 G& U
6.9.4 并发创建索引 209
/ r4 J0 I2 V+ o, b( f6.9.5 修改索引 211: V, g6 Z8 R8 m2 D) @7 z
6.9.6 删除索引 2127 b7 O7 R) @$ U/ s, |7 f( T! W( h
6.10 用户及权限管理 2138 l. |: @( W# Q' l
6.10.1 用户和角色 213
: t% ]8 m( X7 |( q- j# _6.10.2 创建用户和角色 213
$ C, Q. X) I. V. J3 F6.10.3 权限的管理 214
6 r7 s' S J( S7 A7 d6.10.4 函数和触发器的权限 219
0 P4 R$ s$ s4 E8 k: I% a# _6.10.5 权限的总结 220; E3 x8 L+ d; S$ q3 i M
6.10.6 权限的示例 220
" m9 `$ D4 T8 p# H' I6.11 事务、并发和锁 220
% k& `$ M6 C* x2 f$ \ _) |! x3 ]6.11.1 什么是ACID 2210 ]: M" c, v4 _& k5 `3 p$ d+ k
6.11.2 DDL事务 221
: W" _6 Y# k: R/ a6.11.3 事务的使用方法 221. c/ x; g: Y1 @0 R0 H
6.11.4 SAVEPOINT 2225 u, f, Z- j. ?
6.11.5 事务隔离级别 224
0 A# u9 F! Z. S% @6 h6.11.6 两阶段提交 225
( y1 w% B- I/ s6 ^+ i6.11.7 锁机制 226
+ w$ d$ L U3 F& @# n9 }) V# Q& L6.11.8 死锁及防范 230
2 C* V. R) j# e6 J: M+ M6.11.9 表级锁命令LOCK TABLE 2305 s W% j9 g6 }5 i& S0 R
6.11.10 行级锁命令 231
/ l7 x. L0 b4 ?" U/ `6.11.11 锁的查看 231
+ f/ M |2 u! g1 x6.12 小结 238
) P( Q w% J- v* d# S/ G第7章 PostgreSQL的核心架构 239; ]$ S1 A' T( P) s6 m
7.1 进程及内存结构 239
& w4 J b6 @9 t6 c( \7.1.1 进程和内存架构图 2390 w: O( P4 i5 B
7.1.2 主进程Postmaster介绍 2407 _, \" T' U1 M" q) H9 K
7.1.3 Logger系统日志进程介绍 241; i; A! R! g$ Z W h
7.1.4 BgWriter后台写进程介绍 241$ H/ t# V4 n; ~, w9 z4 h% `8 g
7.1.5 WalWriter预写式日志写进程介绍 241
$ Z5 Y$ B' \8 z# m+ F& g% m8 I3 ?7.1.6 PgArch归档进程 242
& `7 p( [8 s6 o: c! L* [7.1.7 AutoVacuum自动清理进程 242; {* U0 i n# X `' o' A
7.1.8 PgStat统计数据收集进程 242
) k) `4 e- n8 a# v q% v2 F7.1.9 共享内存 242
+ T# }% }+ A7 @5 V7.1.10 本地内存 243
6 e+ i) W# o5 s) m* s: m7.2 存储结构 243
' T$ M3 e; ^% }/ U. ^7.2.1 逻辑存储结构 243
9 Z# s/ @; R2 G9 i2 t ?7.2.2 软件目录结构 244' v2 x" P# o1 N. f7 j6 ]
7.2.3 物理存储结构 244# Z: N& t: H) `/ K: r3 y- m3 }
7.2.4 表空间的目录 246- ?: r) ?- }. `5 b
7.3 应用程序访问接口 247& W; h6 ]2 Q" R! V# G- u
7.3.1 访问接口总体图 247- C# i+ ]0 o0 P
7.3.2 不同编程语言的PostgreSQL驱动介绍 248
- B# H' p6 o w- M7.4 小结 249. T, R2 G# D& N0 w* G$ O, ~
第8章 服务管理 250. Y" D4 y6 ?8 B" }! ^7 P
8.1 服务的启停及原理 250
0 l* X2 [8 ^% k4 y7 o" G1 l8.1.1 服务的启停方法 250
$ u& S& @" U0 l7 E F! o k8.1.2 pg_ctl工具 251( F6 w4 |# t/ D( s3 f& I: m
8.1.3 信号 255
3 [ \ v6 N% j2 i* |; N3 ]* n' E8.1.4 postgres及单用户模式 255
d1 y0 b/ m, v, e8.2 服务配置介绍 2567 I: V% v$ Z7 S) U4 |
8.2.1 配置参数 256
( z# x+ s" p' r; @8.2.2 连接配置项 259
O( X& s/ l1 `4 X4 ]8 ]1 ]8.2.3 内存配置项 261
# M( g" s6 t' R# }1 x8.2.4 预写式日志的配置项 262
- a( A& f3 C1 C3 L3 H# f8.2.5 错误报告和日志项 2647 p0 Q8 g- {; M, @1 _4 D) O$ Z7 x6 J
8.3 访问控制配置文件 268
! Z5 D; J9 W/ ~7 w+ O8 a# Y8.3.1 pg_hba.conf 文件 2687 X9 c$ s6 x) F: B7 k l
8.3.2 认证方法介绍 269
! ?: K5 |9 n+ q" d) m9 l" S. i8.3.3 认证方法实战 270
* x4 U* y; x7 K% p' u* C+ R8.4 备份和还原 271
" K( m: Q" O4 p" G+ G8.4.1 逻辑备份 2713 u; C, r. u l( y% ]8 c
8.4.2 pg_dump命令 272. `9 ?2 j% K( e4 `% S/ I9 C2 {; \9 H8 K' P
8.4.3 pg_restore命令 275
! M! `* m f" b2 p8.4.4 pg_dump和pg_restore应用示例 278
O1 B' A' T: r) L. _0 x; l8.4.5 物理备份 2797 R2 E& b+ y3 v6 F7 U \& K
8.4.6 使用LVM快照进行热备份 279
, X2 g8 `* c* z1 e8.5 常用的管理命令 2827 \1 ^8 ~7 v6 i1 G+ s7 [3 H b
8.5.1 查看系统信息的常用命令 2822 d: E/ x# x9 C. k
8.5.2 系统维护常用命令 288
1 |. K t& @9 c* o, Y; b6 i1 R; T8.6 小结 289* W: ~/ O% i0 a! A% P
第三篇 提高篇 java8.com5 v/ W2 p5 E: O* Y. P
第9章 PostgreSQL执行计划 292, x; g$ v" t2 e2 w
9.1 执行计划的解释 292& l$ w7 l, A# F- [* a; l$ q
9.1.1 EXPLAIN命令 292
% u4 |; [0 i1 H$ K% `2 D: n. _% b) l9.1.2 EXPLAIN输出结果解释 293* Z3 R7 U, ]' o2 c
9.1.3 EXPLAIN使用示例 294
5 T/ @: `; ]: c* W; ~6 g2 R9.1.4 全表扫描 297 w* N; j. q( d6 ]
9.1.5 索引扫描 297$ n9 u: x$ Y, n8 U0 h0 s$ c8 [3 `8 V
9.1.6 位图扫描 297
4 u! c- Q& E3 c9.1.7 条件过滤 298
8 l( V( t% ~( n* Y3 z9.1.8 嵌套循环连接 299
/ X2 [0 |: W+ @ e" }) X6 m4 \9.1.9 散列连接 299- ]: u+ P' x7 \& y5 U e
9.1.10 合并连接 300: D \: I4 T4 ?& X5 u: c) K9 A! `
9.2 与执行计划相关的配置项 301( [5 ~: f3 A' v- W' Y7 t$ O0 `
9.2.1 ENABLE_*参数 301- R2 s' U$ `( {& D
9.2.2 COST基准值参数 301
' N9 v* E' t& z; e' u# C9.2.3 基因查询优化的参数 302
. X- V8 {9 m3 L3 [3 [6 }9.2.4 其他执行计划配置项 303
3 O/ Y, ` ~/ O9 l9.3 统计信息的收集 304, V' `' c( ?5 W( A
9.3.1 统计信息收集器的配置项 304# J1 {# q4 o& W
9.3.2 SQL执行的统计信息输出 304
2 F+ M9 ]; i5 y" I# l9.3.3 手动收集统计信息 305
* h6 W9 m6 J0 Z- w7 \5 A9.4 小结 306 b: V" G; W* F! j8 G' t
第10章 PostgreSQL中的技术内幕 3072 C4 d& V( j+ ], a% J1 e- \8 v5 l0 ~
10.1 表中的系统字段 3077 s2 x+ d5 x0 h) j) B
10.1.1 oid 3085 K3 C) T; [8 \: b
10.1.2 ctid 310- d3 _: Z+ j! a* A$ g+ }
10.1.3 xmin、xmax、cmin、cmax 311# ^9 v7 l! R1 j0 N' M2 C
10.2 多版本并发控制 3129 N' H) z8 q1 U+ A
10.2.1 多版本并发控制的原理 312
5 s- X& o; u6 E# q5 x& y10.2.2 Postg ) B" n4 |. R% I
5 E! ~( W: t* K6 P& a
百度云盘下载地址(完全免费-绝无套路):
; y! Y! n# p3 l4 Y6 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|