TA的每日心情 | 开心 17 小时前 |
---|
签到天数: 396 天 [LV.9]以坛为家II
管理员
- 积分
- 12975
|
Java电子书:数据库查询优化器的艺术:原理解析与SQL性能优化 PDF 电子书 Java吧 java8.com
" y1 g) m8 h4 R# ]+ o- l8 `
: |! N, @& E: F. r$ y# O j$ h. @作者:李海翔 著出版社:机械工业出版社出版时间:2014年01月
; Q r) W: v- B; Z5 }3 d# t; B# ]: O! y: B ]+ @- q( t' \9 y
编号:166-Java吧资源免费-X0108【Java吧 java8.com】: ]3 q: V$ f- u( B
4 U9 B+ Z. Z, E& D! ? V" x) y7 C4 ]' ^+ g
5 o1 y0 Z b7 f2 |/ z3 \2 F" U0 f; B5 ]目录:
/ {) T; {9 L* ^. V" x2 T前言
( d, y" x" T$ o: C5 B& } f6 M篇 查询优化技术
. M) B, _; f9 n2 M 第1章 数据管理系统的查询优化
$ C6 i; {0 d, e8 a5 P 1.1 数据库调优
; ?! {: P7 A Y W' R 1.2 查询优化技术
$ _/ i. f! F% m+ q3 T 1.2.1 查询重用( l7 X* R% i, F! A
1.2.2 查询重写规则# H+ q9 v0 ~" Y- P; Z% c8 f: N) i. S
1.2.3 查询算法优化
0 g, \1 ?1 q) `4 H' W+ L" U9 c 1.2.4 并行查询优化
6 k4 Z3 n) L2 g2 [+ {) _ M/ M/ @6 } 1.2.5 分布式查询优化
* M6 k4 N0 n: ]5 N3 {1 l 1.2.6 其他优化% f6 }- z1 y7 {: N! N$ `/ s( T m
1.3 本章小结% R# o( _- A: R' X3 w4 s m
第2章 逻辑查询优化8 e% @% Q* Z/ `! h0 D0 {0 b3 ~
2.1 查询优化技术的理论基础6 H$ n; v9 j# R3 F
2.1.1 关系代数' z% [/ ~7 V. w+ `! n3 a. F* S4 O+ e( l
2.1.2 关系代数等价变换规则对优化的指导意义( M4 B% j" a1 z+ P- q: s- a" w
2.2 查询重写规则4 } _7 Y% j5 A! v4 v
2.2.1 子查询的优化
( {6 h! |3 t9 [- w7 D1 ~8 Z0 G: q 2.2.2 视图重写9 c% b! h1 T5 b: a1 J% P' Y+ a( K2 Q
2.2.3 等价谓词重写7 P p9 \9 s& M) s$ y' G
2.2.4 条件化简
( ?9 ]# M1 R# ^+ q; Y N+ g: {+ c 2.2.5 外连接消除$ H+ r8 K: V# ?
2.2.6 嵌套连接消除
j! `- x& \* h6 P, \6 V( I 2.2.7 连接消除" ?/ X: l9 g; y0 }9 ?
2.2.8 语义优化
, Q4 r# N/ a( b; Z+ ]* E3 a2 T/ T/ R 2.2.9 针对非SPJ的优化
?! A0 X8 Q! @6 n) r3 o 2.3 启发式规则在逻辑优化阶段的应用
4 n3 `0 l' B2 q& C 2.4 本章小结
# z0 ~- ]* T6 l7 F 第3章 物理查询优化/ t w+ E) [; F1 V. ?0 X
3.1 查询代价估算% l4 n* u8 i6 \+ p
3.1.1 代价模型
+ A, i4 D5 c. S* w% m! q% H 3.1.2 选择率计算的常用方法7 M( X/ }+ S* O: u. _) K, M: `
3.2 单表扫描算法$ J t, t( ^7 S4 R v9 x
3.2.1 常用的单表扫描算法
* Z$ T6 J3 G( ^, X8 d/ ? 3.2.2 单表扫描代价计算! I5 f1 z! ?2 }# L+ c4 u
3.3 索引
! c1 M6 K/ d4 ? 3.3.1 如何利用索引4 Z" z3 D& h: k) ^# x7 H
3.3.2 索引列的位置对使用索引的影响
) H8 d9 _1 F& ~1 ] 3.3.3 联合索引对索引使用的影响& g/ `- d1 M5 t8 ^
3.3.4 多个索引对索引使用的影响" ^" K3 C4 D* v0 R M: [
3.4 两表连接算法
/ E$ L% R; i! W$ T; u) Y 3.4.1 基本的两表连接算法
0 Y2 x6 E6 B: g/ F) P 3.4.2 进一步认识两表连接算法* e) L& j4 q3 t% g( U
3.4.3 连接操作代价计算/ O) z: r# z8 F: W+ H+ {( D
3.5 多表连接算法
3 C8 m$ P, @1 M, k5 K 3.5.1 多表连接顺序' B6 }/ c' E0 a
3.5.2 常用的多表连接算法
_" |% t( c& W5 y' n 3.5.3 多表连接算法的比较
+ l& N6 r+ | s( x7 R m+ i 3.6 本章小结
) [& w6 v4 K2 r# \ 第4章 查询优化器与其他模块的关系" H4 B! A8 y' `3 }! p' N/ s, Z
4.1 查询优化器整体介绍. ~, @3 \7 A6 p, @
4.2 查询优化器与其他模块的关系
, @6 e8 C. \( B9 S; g 4.3 本章小结5 Q' W6 {1 S# ^4 @5 X* x4 Q7 L- N6 L
第二篇 PostgreSQL查询优化器原理解析
5 q1 x3 A2 R. @; E! n 第5章 PostgreSQL查询优化器概述
# Z) u$ S* e# f! x4 F! u4 F 5.1 PostgreSQL查询执行过程+ r2 j' ]- h/ g
5.2 PostgreSQL查询优化器的架构和设计思想
) o, O3 G3 @( Y 5.2.1 PostgreSQL查询优化器架构9 W( A3 `; @9 R) G' m3 O% @% ?( m- Z8 n
5.2.2 PostgreSQL查询优化器的层次5 r6 Z+ n$ Q4 d; S
5.2.3 PostgreSQL查询优化器设计思想
! b" q2 F- i8 S+ `& |& j1 L 5.3 主要概念* }- m& Y" F6 `5 y5 K# O! r
5.4 代码层次结构
, n( o, B. M5 u) ~: i! D- h 5.5 本章小结5 ]; j V ^; T" S
第6章 PostgreSQL查询优化器相关数据结构# _+ G7 L E9 y$ I: [6 z
6.1 主要数据结构' h7 J' f/ k5 s# F3 [+ A4 T% f
6.1.1 基本数据结构
4 s1 I( r7 v. f& [- @# a; K; R 6.1.2 查询树0 w, n; h+ H( B; U# S, b E9 G
6.1.3 各种对象的结构
& l r' U0 p2 U+ k8 j, o 6.1.4 连接操作相关的结构/ v t% G' A' V: V% p
6.1.5 查询执行计划相关的结构# B- w9 A) Q- q! g3 k8 X* f4 t
6.2 各个结构之间的关系
( ?3 z5 v1 {, C. p* x' j 6.3 各个阶段间和主要结构体间的关系
# e, k* m/ K. o3 z7 N 6.4 本章小结
% b- X$ \4 j" p- g2 H* \$ Y 第7章 PostgreSQL查询优化器实现原理解析! F( N4 F. P! R: X
7.1 查询优化整体流程
, `- `( [- N o1 k3 } 7.2 查询优化器实现原理解析
$ M$ g- W( D1 ?0 F/ `7 k+ O 7.2.1 planner--主入口函数
3 _+ R. I6 [+ N# o- { 7.2.2 standard_planner--标准的查询优化器函数1 }( C. }, D; d* F* E5 F
7.2.3 subquery_planner--生成(子)查询执行计划函数
! |- u* q5 o4 z6 V 7.2.4 grouping_planner--生成查询执行计划并对非SPJ优化
# k* D! V; i2 i4 N4 I7 |/ Z 7.2.5 build_minmax_path--聚集函数MIN/MAX的优化函数8 x* \( a* w! r9 y& f7 S
7.2.6 query_planner--生成的查询路径函数
7 ~% J5 `% n: X7 {! n 7.2.7 make_one_rel--构造多表连接路径并选出路径函数- M- Q" a' ^/ L
7.2.8 make_rel_from_joinlist--生成多表连接路径函数8 l9 [7 _; g2 ~) w% ]4 U
7.2.9 optimize_minmax_aggregates--聚集操作MIN/MAX优化函数
4 h; B7 a) s1 B! F5 C* V 7.2.10 create_plan--创建查询执行计划函数
0 N0 S) ~4 [, I& Y5 F/ n) f' L 7.2.11 非SPJ处理--grouping_planner的各个子模块2 s# ~! Y6 C- F: F% u( J4 G, l; L5 n
7.2.12 其他重要的函数与操作6 j; G0 m! p1 o3 C: O8 r9 p7 C' _
7.3 代价估算实现原理解析
3 N* e9 G, g5 k7 _ 7.3.1 查询代价估算% v% r) _# K8 U+ ~* {6 }& y
7.3.2 单表扫描方式的代价估算& T- b% @+ X. C7 {% @
7.3.3 两表连接的代价估算0 K3 H: z7 {+ H2 I
7.3.4 其他代价估算函数% O, G$ v: [5 z* X' v
7.3.5 选择率的计算
2 |; ^1 ]8 c+ ~+ p 7.4 从目录结构和文件功能角度看查询优化器2 d3 S9 x; e) L3 X# ~# b, [4 ?$ u
7.4.1 查询优化子模块与主要文件的关系3 N0 \7 T: k# j5 b
7.4.2 查询优化器代码结构5 |9 ?# s, z: A) r2 E
7.5 本章小结* K6 t: B; `, H+ m* H8 i0 c# g
第8章 从功能的角度看PostgreSQL查询优化% l: _" o' T* Q$ m7 @+ ], d
8.1 优化器之逻辑查询优化
; y' T9 w% K: h8 S E! a 8.1.1 视图重写
3 @8 d( B% |2 X D 8.1.2 子查询优化
# c/ U& ^2 a. G! C8 M7 T Y 8.1.3 等价谓词重写
! b- W; ]( A9 _$ H% I9 j 8.1.4 条件化简
) r2 H3 Z6 p7 `3 S- A# d- e 8.1.5 外连接消除
! l" h- C& ?5 L6 e& s0 ]0 c+ ]# L# } 8.1.6 嵌套连接消除- V" z6 e% f3 @6 d; u
8.1.7 连接的消除5 ~7 @: v' U! n" I/ o+ D
8.1.8 语义优化4 @& b4 n* @2 V" N( I( a5 K
8.1.9 选择操作下推! y' `8 r2 w/ K. B" a3 a: F% |
8.1.10 非SPJ优化9 |! m0 g, g! h9 F8 v% i6 m- t
8.2 优化器之物理查询优化1 @& O/ x+ Z( u0 f2 ^1 M' ~
8.2.1 PostgreSQL的物理优化主要完成的工作5 r* r+ m' H b- q* ^# `+ c
8.2.2 启发式规则在物理查询优化阶段的使用
4 |, C, q& g/ [! J( d# m 8.2.3 两表连接
3 C7 w3 b: k& V& C- I& {7 | 8.2.4 代价估算: ?9 ? f1 V% Y5 x2 }
8.2.5 PostgreSQL的索引与查询优化
+ m& B" K, Y& ~& C/ C 8.3 其他$ s+ F; d/ L2 W8 ?4 |' g6 q# R! w
8.3.1 grouping_planner函数主干再分析
8 `) {1 {; a9 ?/ A) S8 e* l 8.3.2 用户指定的连接语义与PostgreSQL实现两表连接的函数及算法的关系# p9 ?3 i( Y$ q
8.3.3 集合操作优化
$ F: z5 D) {9 q+ }) ~+ h3 Z) y 8.4 本章小结
1 C7 E! [3 i: s! N2 p 第9章 PostgreSQL查询优化的关键算法. K6 D# x" Z8 a s2 u7 }6 L. K
9.1 动态规划算法# f! S; H8 q" x1 l& ~7 ?
9.1.1 动态规划算法的处理流程
9 |% Y* s/ Y% h) B( I4 h( z7 k4 H& O 9.1.2 紧密树处理流程
0 M" r4 v" Z' J0 i& l 9.2 遗传算法
# `+ U7 V3 R6 i% J3 @) b8 i* \ 9.2.1 PostgreSQL遗传算法的处理流程: J6 G8 k; F8 }* I# k. @
9.2.2 主要的数据结构
, N( o' _8 |: b4 i0 v6 \ 9.2.3 主要的函数和变量# ]" d0 O' r6 x5 s3 s/ z
9.2.4 应用遗传算法实现表连接的语义+ ~7 E' K* j6 {
9.2.5 应用遗传算法计算适应度
8 V) v3 K. [( B 9.2.6 进一步理解PostgreSQL的遗传算法
0 ~ w9 }! c4 f$ y4 |2 @0 g. u5 q: A 9.3 动态规划算法与遗传算法对比
9 n ^) P1 X' H4 r& }. J 9.4 本章小结0 c. o; M& y6 a m& t" ~% b
第10章 PostgreSQL查询优化器与其他部分的关系# Z2 r- m9 H8 ] U% }
10.1 查询优化器与语法分析器! V& S; i# W" b' X+ G. i
10.2 查询优化器与执行器
* R! ?2 O0 P2 F4 u 10.3 查询优化器与缓冲区管理模块
' P$ N- a3 r. t) |2 p" o 10.4 查询优化器与对象访问模块
. F \# W" C/ c3 H+ h3 m1 y 10.5 查询优化器与统计模块 n1 {6 N: h$ v* c# ]
10.6 查询优化器与索引模块0 Y( b, G( `1 h/ _+ ?
10.7 本章小结
& b/ O& G, g! ?% W) c* t& A6 O第三篇 MySQL查询优化器原理解析. u7 O O9 M- w/ J+ l5 i/ f
第11章 MySQL查询优化器概述8 q! B+ P6 p% q/ i0 E
11.1 MySQL查询执行过程4 g1 H- o. e+ ?, H6 Z; U8 J& N" Z* s
11.2 MySQL查询优化器的架构和设计思想
. V" D H/ X6 u& ? 11.2.1 MySQL查询优化器架构9 f& i1 g# Q0 [3 \7 U
11.2.2 MySQL查询优化器的层次
: z) X2 `: m' t% {+ X 11.2.3 MySQL查询优化器设计思想
) l* t) H/ e5 y0 X4 J& M2 N c7 v 11.3 主要概念
; U6 P% k( s+ N6 `/ ^2 R 11.3.1 常量表
* O- B( ?) q+ m1 z" [( q! R6 | 11.3.2 表数据的访问方式
& [" k5 \! L5 n) g$ Q* n, L 11.4 代码层次结构+ R+ H# S2 [9 P3 O J$ ?) A
11.5 本章小结
! e7 F) u/ ~0 C0 ]- b( g1 U- \3 z* c 第12章 MySQL查询优化器相关数据结构
: g. X( x" f: P5 V7 l+ n0 v 12.1 主要的类和数据结构( B, ]0 b7 D1 F+ x3 ~
12.1.1 查询树
1 ^* Q% k' U# q0 `$ D5 Q 12.1.2 基本对象- M2 Q9 ? n8 m+ q
12.1.3 连接对象与执行计划
- G5 `' s: v2 b; d 12.1.4 代价估算类2 I* @8 \8 u; D. ~# o
12.2 各个阶段主要结构体间的关系 T2 o. H1 ~$ J' _
12.3 本章小结. D' w. r3 `5 c* C
第13章 MySQL查询优化器的原理解析
0 N; Z) K Z) o2 C! O$ s 13.1 查询优化器整体流程
/ [0 B4 g, h6 m% b 13.2 优化器的代码详解% ?; Y2 a7 Q: i- v% b! u4 w
13.2.1 JOIN.prepare--优化前的准备工作
: d, j1 z9 f, t% X/ m8 a3 D 13.2.2 JOIN.optimize--优化器主入口方法" u0 s/ m+ i8 U2 \% i' w9 y/ a
13.2.3 make_join_statistics--计算的查询优化执行计划
" W/ Y) t; a$ O 13.2.4 choose_table_order--求解多表连接连接路径 H! r h* V2 _& ^. A1 {0 E3 p
13.2.5 make_join_statistics函数的其他子函数# M; c2 F M& L0 t% u
13.2.6 make_join_select--对条件求值、下推连接条件到表中
, T0 F* t F. M+ S* b 13.2.7 test_if_skip_sort_order--排序操作的优化* K, T t! h3 ]0 C" l
13.2.8 make_join_readinfo--为连接的每个表构造信息! U P/ z. I1 A5 I6 u1 ^2 ^
13.2.9 JOIN.exec--执行查询执行计划的函数
, d2 F; S# x5 _( _. `4 T/ y( T6 E' } 13.3 代价估算 java8.com
$ x! j" K: u0 j) ~5 T 13.3.1 查询代价估算模型
" J; X" }" v8 b. R$ e0 p 13.3.2 查询代价估算过程
3 t5 d. z# ?9 Z' }2 t) ?0 W 13.3.3 其他的代价估算 d6 \* w# g. f" s' h# z3 J
13.3.4 对存储引擎的调用接口
: B1 u0 ~2 d9 o: v7 Q) K$ ?1 J 13.3.5 统计信息
4 a3 c5 {/ L5 ?1 k 13.4 本章小结
7 M. t2 O: \1 V# `) l 第14章 从功能的角度看MySQL查询优化
* W e5 `7 J6 p6 p 14.1 优化器之逻辑查询优化5 W7 l' J) l/ ?6 R7 o
14.1.1 视图重写" {2 P# S+ g, O# H
14.1.2 子查询优化
, n3 t. p/ y" I. j4 N: ?& O 14.1.3 等价谓词重写
: {; R0 l) ?# ~+ @; X1 O& f 14.1.4 条件化简
- J9 C! T5 w2 i! [9 Z 14.1.5 外连接消除
/ T9 Z9 Z K! G* L 14.1.6 嵌套连接消除
- u' U- ]0 I! {; x7 c1 _ 14.1.7 连接的消除
8 e6 W5 Q* p3 P1 M# S 14.1.8 语义优化. X, X" v- ?: h3 U2 r* c0 P& W4 J1 K5 i
14.1.9 非SPJ优化
+ w6 F! D- b I+ W* g2 C! } 14.2 优化器之物理查询优化
+ `+ e6 |1 j) b! l. o$ f$ s& n& i7 i 14.2.1 MySQL的物理优化主要完成的工作
& s) ~/ c6 Z% d( h4 v+ o 14.2.2 启发式规则在物理查询优化阶段的使用/ e |1 b. _& A
14.2.3 MySQL的索引与查询优化5 ^6 X7 j) J' f1 L5 H
14.2.4 用户指定的连接语义与MySQL实现两表连接的算法 B* H: ~. L8 S+ }, F& A- ]* \
14.3 本章小结
& n7 H/ `, z! g, b) D5 N$ N 第15章 MySQL查询优化的关键算法
! g% B- D# B+ W2 H K, T* F& ? 15.1 深入理解MySQL的多表连接算法
* d, o9 `3 {, h. \& Q 15.2 本章小结
7 x5 s: L: ^, l2 a, {6 ? 第16章 MySQL查询优化器与其他部分的关系
- s0 l: _: }9 ~! ~ 16.1 查询优化器与语法分析器
% j9 v. b7 ~) H+ Q9 ?( ~ 16.2 查询优化器与执行器$ w5 g* _) v" }9 v4 P. I
16.3 查询优化器与缓冲区管理模块
. e6 s, a* g" C: j 16.4 查询优化器与索引模块- m+ _$ X6 A6 @4 f8 D8 P+ Q5 q, ]
16.5 本章小结
' Y* ?' B2 o. _* \6 R' J! @; t第四篇 PostgreSQL查询优化器VSMySQL查询优化器
2 L( R! W, t* C! S9 G 第17章 PostgreSQL和MySQL的逻辑查询优化技术# e- M4 l* f: m4 U' w5 B
17.1 查询重写3 y# v" d6 B( w/ H. c! A
17.1.1 子查询优化
! D6 K' \+ k; c; i. o U$ i! r2 D 17.1.2 视图重写1 V! F/ S0 C+ a
17.1.3 等价谓词重写0 f7 }$ u. R( n3 `! r- t+ A
17.1.4 条件化简' |' m; K3 G4 s: j$ M: N
17.1.5 外连接消除+ K0 Z! ]$ l5 l: {1 p/ l& z
17.1.6 嵌套连接消除
+ ]' f7 O2 T9 ]# v9 l3 N 17.1.7 连接消除! d) t# Y5 B6 H
17.1.8 语义优化, U' v" _4 e! c# B! s7 j: V/ q
17.2 非SPJ的优化
7 u; {" D% I" ~7 d. ], E1 r 17.3 本章小结
7 }& x6 l3 O& @9 h 第18章 PostgreSQL和MySQL的物理查询优化技术6 Y3 d+ Y9 M2 {, T
18.1 查询代价估算模型比较
$ N0 k& Y) C$ Z* i" i9 w. c 18.2 单表扫描算法% ^$ c' w$ P: p7 z6 [1 R1 [
18.3 索引
8 B* f* r2 F: f3 ` 18.4 两表连接算法+ h5 K! D- q" ~
18.5 多表连接算法. m1 y" y" Y) U+ @6 d, {
18.6 本章小结' T! R" z K- }% y F# Y
第19章 PostgreSQL和MySQL的其他异同, M' \; D7 A( M2 a
19.1 启发式规则的使用比较
0 k4 e, z9 b* q$ ~+ m( Q# c4 } 19.2 综合比较5 b# Y) [. d/ ^5 c3 c3 I- u& S
19.2.1 基本概念的比较
$ H9 ^; l" u6 G& e1 U7 \ 19.2.2 数据结构的比较/ w0 }6 C" A" h
19.2.3 设计思想的比较
/ ]" D! s0 }6 f 19.2.4 编码规范的比较" N" d3 P6 [# K, ~# P* d
19.3 本章小结
: c: f9 q. K! a7 Z: Q 附录A 如何掌握数据库内核
/ o9 u( f8 K9 g3 K 附录B 如何阅读本书
2 m, R1 r, T0 \" e* {5 } 附录C 如何阅读查询执行计划" G( d7 |8 ^, D# g
附录D 如何跟踪查询执行计划% d1 }2 M- d( I" P- h' M
' a; m L) y6 p6 t# Z3 E, ~
f- z6 R7 w9 I7 R
9 o8 e$ B$ b3 Z6 [ I' x/ F- [ 百度云盘下载地址(完全免费-绝无套路):
$ }( }; m6 f$ m& ~1 U# k- ^4 A* d7 A7 x' b3 \
6 e$ m3 h) ^* q% L3 o* s( K4 J7 [8 i
, P, j1 ]4 {/ z3 t+ A/ m b7 Z q& [
5 r3 A( @. ^" @1 \2 A7 k- T! _ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|