|
Java电子书:MongoDB权威指南 第3版 格式 pdf 电子书 PDF 电子书 Java吧 java8.com
) x) c: C( J. ?" A: M8 U. }% r( e( r; y$ M' |5 V, R( e1 D
- C; |6 U' E& w+ x7 j0 a) y
编号:mudaima-P0240【Java吧 java8.com】% k; u8 W2 e* O. [" P
; n2 U0 X4 T3 `2 @
/ z) }9 l" C. T+ W, I9 E. |( l- t
Java电子书目录:第 一部分 MongoDB入门/ t$ }% ~3 L8 q8 O
. D0 }4 I+ S& K9 W( n( r' W第 1 章 MongoDB简介 3
9 [4 @2 x _0 B( j) P0 d* `
( A) g+ t8 J# d6 X: d1.1 易于使用 3
/ F) q$ A6 i0 Y: u
" v6 S2 M) D. T) h5 _; M$ X1.2 易于扩展 3
5 c( n+ u! f2 Y5 t& c+ S! m/ p
3 |3 s5 _6 L0 t) {& b1 }/ W: X1.3 功能丰富 4
+ W- J/ N/ `6 F" A: R' J! R# |" Z6 S l- t w7 [6 Z5 q$ j
1.4 性能卓越 5! a3 f/ L7 V6 N' q7 ~; R! f
% y6 C, W+ _( N
1.5 设计理念 58 B+ r5 ]- a; E
7 d2 f, N# B' W2 h3 Q: g第 2 章 入门指南 6; s, W9 `7 \! _0 N6 @
3 Z0 m& y: ~# E( B
2.1 文档 6
B# i$ a7 Z+ j( p$ F. E* ^5 f" c+ b, w n8 P+ u9 }4 N5 S2 h
2.2 集合 7
; I9 [! V9 }! ?7 R; T
7 {/ M" g; y" t9 O5 ]/ ^+ {. m2.2.1 动态模式 7
! G7 ?; m2 s+ p2 C& P9 F! j' [( j! {: w& z
2.2.2 命名 8
6 U m6 \9 _( ?' z; g8 t
$ z/ q/ d! V" u" ~5 H2.3 数据库 8
$ [0 m0 f3 w1 h7 E- N5 X- l/ H" p$ y; n- V2 S1 k8 M0 M
2.4 启动MongoDB 9
' B$ T, ?0 W' o5 @4 R7 q
0 P, \ ]$ W0 v8 C/ t2.5 MongoDB shell介绍 10
! M- N7 r6 `* _" o, e8 s0 X
3 M& a& |; [7 o; x+ y; k) y9 M! j0 U: b2.5.1 运行shell 10
8 M- E" Z# I* i: B
! s |2 j6 f, n4 e, F! \# S2.5.2 MongoDB客户端 11
6 ~8 h0 k7 k6 e5 w2 d0 F, K& y8 S" B: L
2.5.3 shell中的基本操作 12
; O8 z8 g, x9 d/ d& l6 w) x" Z1 e7 m1 A$ z, w/ p* o7 Z; C5 L5 k
2.6 数据类型 14
+ {4 a1 y0 S! L2 w& c8 w% z
7 ~# C4 m/ i. _5 J( c2.6.1 基本数据类型 14
5 Z7 n' o+ N+ U6 a, g3 R
4 c M4 k3 t+ B7 j4 j2.6.2 日期 15( j: i- w' Q: ^" D$ P; x
0 B$ Z& F# A( v; Z! V1 P* Q# |/ O
2.6.3 数组 162 V8 N& C8 u F& E; V
: p* ~' o4 K/ P+ v, l" D# i2.6.4 内嵌文档 16
% p. b# x+ O+ W- o! U% A& p( O4 ?, ^8 f' M9 I
2.6.5 ObjectId和_id 17
( a, G1 F8 r2 N
! h3 ?9 A, u% l2.7 使用MongoDB shell 18
9 }8 v5 U5 ^' y6 s4 q* i
- O/ I/ R. A7 ]3 e2.7.1 shell使用技巧 192 {1 N$ N$ l, |( L$ x! E
2 O; K) e; V- p$ d( E, S1 R: W& `
2.7.2 使用shell执行脚本 19
' E2 A: w- G- v- k* k
! \0 P0 Z1 K$ Q3 W7 D2.7.3 创建.mongorc.js文件 21* N( m6 u n. q( q8 z# ~2 x
: |& L9 v* U, d+ Q2.7.4 定制shell提示信息 22" \7 T% V! f/ d4 {( O! {
1 t( P T2 K+ O3 v E
2.7.5 编辑复杂变量 23- O$ W4 ]# z7 P+ [- @$ N
5 G+ i0 C" v: c" A
2.7.6 不便使用的集合名称 23; \# \' x2 W0 I( P4 X
" w0 G) `2 j1 g- ~' x; k& s9 f4 n) o
第 3 章 创建、更新和删除文档 25
7 N5 {) U/ q9 u/ O5 W& y% S7 ?0 P1 s2 ^9 d1 ]: d" j8 S) Q
3.1 插入文档 25
, U6 m5 e' D* p) S2 S
0 e) c! y7 W& F+ S6 T7 p: p# s3.1.1 insertMany 25* U# b3 X5 P* K6 f( {
% Z; J) F5 {; @- l/ b- X q& `. _0 y7 |3.1.2 插入校验 28
" m+ k* B$ U4 N& V
- d! B3 P8 k5 \) N9 v0 F! |7 ?3.1.3 插入 28
+ R. Q9 O9 o z2 L9 a, d$ L
& c( j6 B: [( n+ ^* W. q: L3.2 删除文档 28- P7 K7 l7 s. d( L3 R4 A
* Q) @* @3 `# N3.3 更新文档 30) N1 }5 t7 |" Q/ y# w, t
' ]+ D# e8 E, w1 U* G* {
3.3.1 文档替换 30
1 G7 N# ?8 X4 R) \1 R' D) k( h$ [2 Z- F: \3 _- {# O: g f
3.3.2 使用更新运算符 31
! O3 }5 P. d/ c2 I! L& X' G% u" l
. ]' |, I4 r7 S3.3.3 upsert 40
* e1 |: y& M2 N4 R' a) f
; h9 v- o" n: T% z0 }/ J2 `* _- b3.3.4 更新多个文档 42
) U1 U) `0 K0 T- S; v# G; c9 _: ?* R! X, P' X) ]
3.3.5 返回被更新的文档 42
6 y2 r# B) d2 _$ A0 o" Q5 D6 h" u0 z; z, {+ v
第 4 章 查询 45' t z5 H+ \" t2 m. |% I
3 l+ L0 H# R# e4 m4.1 find简介 45+ B' p& g" E- F/ {. ]' \6 ]
. P+ Y g8 w! {: ]" r: H
4.1.1 指定要返回的键 46, K" I: Y* v. L0 D2 m) {& ?
' S7 O+ y8 e! [! F
4.1.2 限制 462 W- Q1 w. m$ m+ V% \
7 p6 U. Z! F' [2 E. x. F9 E4.2 查询条件 47
) k M+ I% V6 A9 n1 n. {4 ~4 Z
. l4 w& }1 G) ^: H( q: U* _ q4.2.1 查询条件 47
# \/ |" ^8 h9 e% J' u4 |2 Z# P" G7 `" O, T; Y% |: l# Z/ r
4.2.2 OR查询 47
3 `( a' C8 n' y' k; C$ P, ^% I* M0 G* {; j# J
4.2.3 $not 48
# L: b1 M+ p5 M% U; a
5 G7 J) u4 _% R/ J1 b4.3 特定类型的查询 48& y8 A! F) M& B" I
1 b. N" N$ k- e% {0 F9 p4.3.1 null 49: j( m6 K+ R3 V1 r
8 Q' K% ~( k: h8 j4 u- ]0 i. O4.3.2 正则表达式 49& a& \3 N/ i8 G6 c f9 N
' T) R/ ?: x4 H# s+ H6 Y, E4.3.3 查询数组 50/ D! g \& {9 G2 g/ G9 f) d x; H7 _5 J
( E$ `; E* @9 i& c- K! q; ?
4.3.4 查询内嵌文档 54
# j( z n" T4 S8 n! u+ @3 e
4 v8 ]. U$ q- }0 S% x/ x* s' B4.4 $where查询 55
- |6 C8 I$ a6 r& ?. ^$ D( ~/ F
6 } [9 A6 q' f4.5 游标 56! v! j* D/ t* \( z: x$ M
2 T4 J* c' }, R- i+ E
4.5.1 limit、skip和sort 57* `. J" O% W4 X: A0 s8 ?
9 O0 [' H8 t. Z7 Y% l0 d
4.5.2 避免略过大量结果 58
/ e9 F- [/ d3 }; L
! P5 e. P p7 b/ u1 i9 A- A1 A. p4.5.3 游标生命周期 59# w8 \9 X7 S- S; L8 f
& T) S6 ?: {. s+ ?/ A% A7 |: C第二部分 设计应用程序
. C1 H4 f% e7 W5 k7 @# {7 l7 F! t1 M
第 5 章 索引 63
8 M" t2 V3 [2 |
) q7 f7 A; ]6 I: W' g' _5.1 索引简介 63" f. M+ J/ P- w
/ i; \: b% C6 t; U" |" U6 W4 N5.1.1 创建索引 65
& Z& \ i7 ] i+ h( Y" \" g$ P3 M( s) l( M
5.1.2 复合索引简介 68
/ d7 ` ]+ d, \8 g
" k: Y" @% O9 m8 J2 V0 k' D% t5.1.3 MongoDB如何选择索引 71$ T/ _# F+ Y' ^& I" c0 o8 q
3 X7 z1 M% T( ]1 `5.1.4 使用复合索引 72
3 a2 A: k* E0 d# M8 m7 B9 O' J3 o7 c7 I+ G: \. U- ?* ^& W8 V" D
5.1.5 $运算符如何使用索引 88, ?5 }- b1 D1 d3 z+ w
" |" w" A' l ]3 b! ?# r9 \' q" ~
5.1.6 索引对象和数组 97
' R. k s' J& _4 I4 Z( T# L; X
7 r- Q Y& e" |- L* s* a1 J5.1.7 索引基数 998 M( X2 P8 s% j0 Y+ D# X
& g: _7 W- t* z
5.2 explain输出 99
9 U& K8 H; y% d! O( k( {5 E1 M8 p% b. y, U* z
5.3 何时不使用索引 106
- f+ K$ H! Y2 A' ]* q5 @/ X
' O' X9 S$ t e5.4 索引类型 1072 C3 I2 Q" V# d
( E. r' h8 p4 L6 G$ P) b5.4.1 索引 107' ~3 i2 H: }7 _" R
7 T3 Z# ~5 k$ h4 b
5.4.2 部分索引 109& A! s! L- c! W! M! q0 U" O
7 e9 s* B% q: l* A" I9 G) ]
5.5 索引管理 110) w( O/ a/ W# s6 c- A" [/ e
' y! N' Y( \ @: X1 I. D3 e5.5.1 标识索引 1110 ?; t! ^8 r7 R) r) Z
) z; v7 [5 G2 T
5.5.2 修改索引 111
9 Z5 Z# r; G- w2 w1 Z/ C2 Q
* W" ]4 A: ?; o& |第 6 章 特殊的索引和集合类型 112- n" s+ D3 L% E3 \- t2 u+ \/ I% L
' \. d" n* F3 q( G3 z6 q x- h
6.1 地理空间索引 1123 P7 i! ?2 ~7 _7 R2 w$ J- x% X
; p8 `8 V- W5 ], ~! T$ F6 m6.1.1 地理空间查询的类型 113
" q4 K: `% c/ p! g. S: F( R; ] r: Y6 G5 @; N4 l
6.1.2 使用地理空间索引 114
8 {; m' w' }* P( i5 c+ ~' i W. l$ g( {. [) F0 ?/ \# |
6.1.3 复合地理空间索引 120
& t _6 @ G$ `* Y- p9 }1 g
' Q. T/ e+ B! I, B) Q8 m9 w7 v6.1.4 2d索引 121
! C1 B/ T6 l2 ]3 ^( D: B
" A/ F5 L6 L8 A7 H' k! g6.2 全文搜索索引 123
7 O! G0 Y1 h0 { r
* |6 ~3 g% {3 i( l4 G2 g6.2.1 创建文本索引 123
1 b0 d3 w( T# a# Y0 I6 Z3 W6 u' ~/ A4 h5 g) T A
6.2.2 文本查询 124
! o! D* W {+ N ]/ c% H! f
7 Z' S5 t+ ~+ G6.2.3 优化全文本搜索 126* B+ |* N+ h- ~+ {! c. M1 U
9 m3 h1 O, v4 h& E! f5 k6 _9 \$ J( I) P+ j6.2.4 在其他语言中搜索 126. q( X8 W7 f6 ]& {0 U; }& T# e
R/ m: W) F @6.3 固定集合 127( {9 ?# S: A' V2 [2 m
2 @: b$ [- P j6.3.1 创建固定集合 129
5 D9 F O, \7 e- p! O3 D0 r
$ Y, c# Z" F5 U1 A3 b. p4 _6.3.2 可追加游标 129- s9 ~5 ]# |1 N
; b6 d- ~2 Z8 ?, C' Z% ]6.4 TTL索引 130* r- F' ^+ ?; |. D, Q' ?
! }; z0 v' M L! v4 p
6.5 使用GridFS存储文件 1305 J9 }0 R; \4 }* V. p
- `, d' t. D C" E8 I. ^
6.5.1 GridFS入门:mongofiles 131# f7 b1 p! Q" L( }" R" x
1 c# n7 J$ e* p& J7 }! r) E6.5.2 在MongoDB驱动程序中使用GridFS 131
2 h: t* m9 G( O3 h( X$ X9 Q ~& ]6 c+ |2 i2 e. \
6.5.3 GridFS的底层机制 132
( b( J6 P C- m% @; k. Q& o- z: i
! n$ @- R4 A2 t5 }7 O第 7 章 聚合框架 134
' I; h: G& e1 D8 q0 @% R% `% k- }5 \2 u, p5 f3 {
7.1 管道、阶段和可调参数 134- r7 j5 Y; e- H5 X. o2 G, ?. i' v
7 P: n& F, P7 @0 I9 N5 C6 \7.2 阶段入门:常见操作 136' `0 D# M1 T; O; ]: x
" ]/ w0 n! M% ?5 V1 g% h3 S! t: k2 Z
7.3 表达式 140
@1 b7 w% _$ A. k$ k" J3 C
* J) y! ?( o6 X! Y) y A( Q6 }" M5 H7.4 $project 140; c7 w7 ` S9 f/ w8 {2 d8 L6 E+ f
# g' D/ V+ g$ e2 @
7.5 $unwind 145* D2 I6 m) ^ |# C. h2 x
$ `4 O9 K2 H( x' b3 O/ W
7.6 数组表达式 151
* j. X0 p# |& S$ K. Y5 g* F6 N2 }1 Z: c9 W D) f! z' f
7.7 累加器 155/ K! ~8 k+ C. e8 ?+ S' a9 p
1 H4 ^* u' U6 ]/ q* e7.8 分组简介 573 s/ m, L0 k% D- S" b1 _+ ?2 g
; f5 T1 ]& l4 n" k9 z, @7.8.1 分组阶段中的_id字段 161: s! t7 R9 c* E0 M& c" o: ^ K6 E2 }
) i; C5 l* A% `/ q x* \/ P7.8.2 分组与投射 163
( K3 F) D) ?2 S& e. F0 g- X8 J1 p
7.9 将聚合管道结果写入集合中 1666 D0 [) @- y" @4 \$ K
# |5 e! F/ d! ]/ m第 8 章 事务 167
- T# V( f& }! @" }4 Y$ c; s& u
8 q& o: j! L; g7 e8.1 事务简介 167) g1 S. s5 K k7 g- [# j1 N
, a6 A( e! U1 B3 `
8.2 如何使用事务 168
. O9 q- q+ f1 k& ]$ w5 `- N. v. C, G, \+ r
8.3 对应用程序的事务限制进行调优 171
' I3 M, o( k& M3 @9 q. c2 D6 X* A, r0 M+ |: T$ s' @# z
第 9 章 应用程序设计 173
* r& L( R Q8 r; Y& C5 y
+ E7 N$ V) n8 f. r9.1 模式设计注意事项 1733 f' D. {2 m0 l1 k# x2 h
$ g- P* u; Q/ j4 t/ f1 Z7 V9.2 范式化与反范式化 176
; Y; N% C4 `5 o# A1 `6 z5 F a2 k7 `
9.2.1 数据表示的示例 1763 R# z0 M5 Y6 h! t1 Z
1 Y" B3 i7 }' c6 k
9.2.2 基数 180
" J; I, Q# Z8 I% S' `4 T3 {1 l# z% {' n6 v2 X8 I+ r+ w
9.2.3 好友、粉丝以及其他麻烦事项 180
8 f, o3 \+ T- ~+ U' H4 y& w% o9 s, ?; A# m: @
9.3 优化数据操作 182
6 K. q: S4 u9 @) ^* }4 H) j8 n3 W1 P3 u; _4 g4 I h8 G% D
9.4 数据库和集合的设计 183
6 y V! u7 Z' F% q4 n- e h7 O7 Y# T- u. m! `' P; o+ x% p
9.5 一致性管理 183
. P$ W! C8 i9 N& H) b, i, G" j. W$ c0 f' c/ N# `5 c% J
9.6 模式迁移 184
7 S8 N& A) b# n1 {& H! p/ v& C
: }8 H8 a' z& W& g0 o/ C9.7 模式管理 1850 r9 m# z% ^2 Y1 k8 W5 z3 ?+ S
1 o3 U5 R K/ P4 B9.8 不适合使用MongoDB的场景 1857 M# E; w; c2 [% i: h- x
% p ^5 S- I/ b: s& Q第三部分 复制
/ l6 H2 ^- A, `
4 F: B9 s! A3 W$ ]第 10 章 创建副本集 189
* e) L& Z+ R/ i( I' [+ ]: s3 B
) `" H, M5 C( ]7 b! E7 B10.1 复制简介 189
2 Q, U% ?! {" U- h n5 p) E z; q" r, R$ g2 R
10.2 建立副本集(一) 190
+ b3 x( R6 f9 P$ K+ \; O V/ X9 Q: o) h6 v
10.3 网络注意事项 191
3 a) O* ^ _( A4 _0 N& E" x
7 S. n3 y, ^$ x8 d& @! s& j3 E10.4 安全注意事项 191
0 G4 y4 f0 ]; ?, e+ A6 g
: n- v3 D, E+ ^9 Z10.5 建立副本集(二) 191& r9 `# C; i$ G1 [' g6 a
5 u. x* |7 Y2 C5 V, ^/ a1 q10.6 观察副本集 194* ~5 c% S, _- E1 v1 ?
$ Z8 M! T& S5 x# E' L# r" m10.7 更改副本集配置 199# k3 |% R; _' C4 u+ R. s
7 A- h- { q. e# z10.8 如何设计副本集 201
$ U y( V* h; J6 f8 h1 @
4 j! [. b" G+ ^8 }2 c10.9 成员配置选项 203
( R3 L8 w9 L7 {4 Q4 j: P4 ~# n/ M+ t& m8 |) p" ?. F/ j4 g4 E
10.9.1 优先级 204. t, ~+ L g) n9 B6 f4 G
& U5 @% e' k, d% G10.9.2 隐藏成员 204 ] F5 V& W# V
# _0 L) t% I4 {9 R$ ?% b10.9.3 选举仲裁者 2057 i" z2 |) ?3 `/ c; P. ^
8 X4 a2 S/ ~7 N4 X1 R
10.9.4 创建索引 206
! M8 i n4 w. A/ c2 p j$ N$ m O
( e+ v# m; D9 ^, h第 11 章 副本集的组成 207- p- n5 Y! _! F
' r1 Z# M# w& o9 G% g
11.1 同步 207
& T j4 Y! c* G+ P! q* V- d" z J, v( T& O
11.1.1 初始化同步 2099 c4 ~6 n# ?3 f% t2 n6 }3 Y$ g( }
% v3 r3 U' C; b# q: Z' k0 \' @
11.1.2 复制 2109 J" F/ U1 r' z
/ t8 o! T. R# K B3 b11.1.3 处理过时数据 210& r! ` d' E( D3 |- r% p9 }; F. c
( H, F( E9 l4 Y+ a! X11.2 心跳 210
# a4 U' N# F) e5 @8 _) D
, U& B j8 y. n4 k3 A; R) o6 y4 _11.3 选举 2124 n: a6 G( t4 B$ L4 B3 ~
# M) |0 _2 m0 u4 U/ P! Z1 O0 o11.4 回滚 212( J, I; r; B% g4 H9 s
! T/ \6 t5 E2 i3 D8 ~' ]
第 12 章 从应用程序连接副本集 216
& w* B7 V4 F2 w4 t7 u. R4 R8 p {' P
12.1 客户端到副本集的连接行为 216
0 P# R" k! ]5 d# \ v
8 D9 E: T8 z3 Y) ~ }; k. ?5 {! e12.2 在写入时等待复制 2188 W8 }; B8 F y7 f3 j% h& R
3 ]' ], U2 j, h" d
12.3 自定义复制保证规则 2195 R% a& P1 h; g6 i$ n3 M, \
m4 m* N. I3 i% Z. x8 z12.3.1 保证复制到每个数据中心的一台服务器上 219
+ o1 B- {/ g" d9 I7 @8 ^% g
( d9 }: }& a- |; W8 J' X ^9 B4 r12.3.2 保证写操作被复制到大多数非隐藏节点 220
8 `; c- r" R1 o
) J, Y2 q4 Y$ P d8 i12.3.3 创建其他保证规则 221
3 J5 d) [6 J- N! V" D4 n9 [7 E3 m( o0 M
12.4 将读请求发送到从节点 221
+ i: u8 Y( l, t, S& b& `! o; s+ v+ B+ z$ `, Y
12.4.1 一致性考虑 222; \% H. S) Q6 p$ L j
# l# e2 b! W' a1 K# n8 v12.4.2 负载考虑 222) Y* [1 o: W$ ^8 O
; G! a$ w8 D7 X! |/ S0 t. T! X12.4.3 由从节点读取数据的场景 223
# y8 C6 c0 ~) r# y% w' O. @: u, P# \. y8 A& V' } b+ a3 t7 @3 t
第 13 章 管理 224! Q/ s, R; y) R0 @. @$ \ c. z# i
* q* g9 ]1 j9 U7 S% h1 x
13.1 以单机模式启动成员 224
( K& u4 L( y" }$ l, [' p; [9 V( x g- E2 ?; q& `) Y9 w& q, x5 N; W
13.2 副本集配置 2254 Z" S* u! O6 _
$ w0 W; U- k8 e" v
13.2.1 创建副本集 225
. E6 K# p# t4 B4 X( ~4 I+ P
! H6 G% ?8 V$ n6 f6 b8 V13.2.2 更改副本集成员 2253 ?! L# _) v6 p8 P* ?- k) _
5 ]8 q; F" x: U$ M13.2.3 创建比较大的副本集 226
% |' a- G3 A- r* q; ~4 h6 c8 r+ p0 H5 P9 V$ ^
13.2.4 强制重新配置 226% d' J% S9 M/ M% `, d' V, e( `
A3 z% N) H( O) e8 B13.3 控制成员状态 2275 q }% C- z+ Z4 o9 |+ a' R
9 \, a3 G* W1 j; a13.3.1 把主节点变为从节点 227- S( b. I* d9 R* t* E l. n& a
; D- |; S/ O8 a" G, K
13.3.2 阻止选举 227/ C% k& ]: }/ z( P
* [8 s$ W8 B- j" F' T13.4 监控复制 228! q& ?8 f7 [' b6 J: Y
7 N; S* V3 j: S2 \& M0 j) D% A5 y13.4.1 获取状态 228
( t3 l" y0 B$ F" [/ ^ U* l" ~" g% J5 W- u$ X+ r% }6 M3 {
13.4.2 可视化复制图谱 231
+ Q9 f+ N$ b" X+ ]0 w7 C2 T. `- h: {7 z8 G0 c% G
13.4.3 复制循环 232
S9 S; j9 Z* q4 Y W& ]" R6 {& v. m2 u6 F
13.4.4 禁用复制链 232
. \+ P: E7 u8 c3 L
9 v& Z1 T# c2 X# Q4 j13.4.5 计算延迟 233
: o8 k! Y( @" U. D
7 b$ d9 O! _2 E( a0 e' T: `13.4.6 调整oplog大小 2346 R: \' f& n& n4 T, p. T' y* }0 Y
7 v6 V8 O; k, Z- w" i4 w
13.4.7 创建索引 234! D7 |9 O- P3 E% I8 C
! H# t4 K* |8 u l
13.4.8 在预算有限的情况下进行复制 235$ m) \3 [! ^, |$ K; @2 ^. W) h
: M1 U0 p3 {- r4 S* a+ f9 X
第四部分 分片2 d* c5 r% G, u, Z
' I% X0 i9 d3 N! e z- d第 14 章 分片简介 239
; @& t+ y0 o; y9 O: v7 q2 ]/ W6 u/ O- Y8 D" O
14.1 什么是分片 239* Z. o. A% t/ _( ~
6 w( x! ?: w; [" n$ g$ ]- s
14.2 理解集群组件 240
* y; }1 B- L9 S ?7 w! S4 T& ]2 x. Z( F) Q
14.3 在单机集群上进行分片 241# D' J5 H" G& W1 c3 [+ W' c
8 u1 G7 D8 O2 u/ P. t第 15 章 配置分片 250
" q( K- N, d0 `7 a
* D5 \- e- I' h; ^8 y: N0 l15.1 何时分片 2504 W. p2 |% H1 A3 c. H% M
+ X4 g" V: ~7 L& a* S7 u15.2 启动服务器 2510 }8 t6 K: h$ m- V% G/ P4 z! T
6 Y m) z: I; | M3 }
15.2.1 配置服务器 251
, A& C) G( C5 m* }1 r# I! Q( M1 O1 r: c$ J* j
15.2.2 mongos进程 252
" }9 h+ i: T* e# q' p1 q; Z5 r2 m4 a5 j( ?5 x8 z4 ^6 l
15.2.3 将副本集转换为分片 252 v3 G$ n2 l/ i+ V I
) l0 b( W/ x7 S) E
15.2.4 增加集群容量 256* O# l% K% Y4 u U, C/ {9 V& u" {& E
( E) H% L( K3 M* D+ m# n15.2.5 数据分片 2568 }* n" x3 }6 T$ d0 G" _
8 Z- R o5 p d! _2 o* _, S4 N15.3 MongoDB如何追踪集群数据 256$ B' Y/ X* n: \/ J e* D! T1 T& r! r! ~
- m$ z; w' }- |% V% _15.3.1 块范围 257
7 W3 v( o- Z/ R i0 V. q1 \0 C3 w
+ F! T# I) q& T15.3.2 拆分块 259+ f, R! y# V* M# O* G
: I3 R/ n' w& f6 v1 _
15.4 均衡器 261" n9 | l$ O) C O, I T
- N0 H B# C4 p: W1 C4 i# T- P15.5 排序规则 261% I/ Y' A- v; O2 }6 G
& c- [/ r* q& o: {" `15.6 变更流 261" {& ^$ N2 X& J0 f
; w% d6 t( d& r* v第 16 章 选择片键 263 V/ | F8 w3 C0 h3 E8 @: u4 o7 Q
0 ^5 f+ J. [" C# c$ c16.1 评估使用情况 263
9 A7 g1 U0 Y- H8 B+ | t- F# Y0 N
16.2 描绘分发情况 264
2 M4 G& V2 [. Z }* g; J/ F, D% L- d- W% _+ P( r" {: Z
16.2.1 升序片键 264
5 L7 q; Q$ D4 r- v7 a2 F1 F3 y4 i! q+ Z! M/ `+ L
16.2.2 随机分发的片键 2663 G/ S! P# \; E4 `8 l; h$ f
) R E- I$ x7 Z. y; R* |8 q: z16.2.3 基于位置的片键 267
* v5 ^: I3 u& `$ d8 k5 s) Z4 O( ]
2 l# J& }5 h5 V0 y0 L: p, X2 `16.3 片键策略 2687 j m$ @- a2 H1 [$ p
# t4 ~/ C6 i* W) [
16.3.1 哈希片键 268
$ g. q" J: q R) H- Z& h, F; E5 v4 O( n& e% _2 R! q
16.3.2 GridFS的哈希片键 270- O. D4 L" g8 E* V! P
/ U9 }8 U3 Y3 s; Z16.3.3 消防水管策略 270
. M# @( [4 V2 }* H1 ~7 F0 T8 f6 Q+ a! F
! l. I; C8 N( e `& U C16.3.4 多热点 2712 D7 l5 F, z5 n3 S
7 c. _ i. ^5 W; H8 ?; m; C16.4 片键规则和指导方针 273; f6 Q i S' [4 I0 z
8 {! _6 [; m+ V' x7 n16.4.1 片键的限制 2739 L# f: i8 _* P" o, A
* N) ~7 n$ l5 p( a16.4.2 片键的基数 273) x2 O6 W5 |# _! i6 P7 h
( `5 j& m# a3 V& f( i0 P16.5 控制数据分发 273
9 k0 w6 B% M0 l1 v+ R$ O& w" z- a6 o3 @& j5 s: Q8 s' I7 S+ E% z
16.5.1 对多个数据库和集合使用一个集群 273
3 F6 a5 U' [; T$ T, U; R! F! p% Q4 m
/ g# [; { U# ^6 x& L: Q/ t& J- e16.5.2 手动分片 275
$ r% n# r5 p& l7 ]
+ n: m+ z5 C Y+ ~4 {第 17 章 分片管理 276
% e C- l& p8 a! f0 \/ f! o
( q% j. Q* M5 M17.1 查看当前状态 276
4 s) v$ f8 d9 w1 U
9 \; v( L. K& |3 H4 `2 s% m3 ^17.1.1 使用sh.status()查看摘要信息 276
1 K! w1 |' b! Z6 f0 y! G3 `' P! |" ?" v8 B; a
17.1.2 查看配置信息 2788 S; G8 `9 t0 z5 z, b: P0 r% n& r
& O) V4 P. A/ d; p
17.2 跟踪网络连接 283
z/ _3 C' Y: l4 x) E
5 u/ D$ ]# b2 } Y0 a7 j17.2.1 获取连接统计 284
9 O% w+ O7 k; p
- w% @' I" ^' J9 b) p0 v) V! `17.2.2 限制连接数量 289
/ S' `" F7 m7 M
& ^! x* e7 _# I6 Y17.3 服务器管理 290
) i% c* Y h+ |4 @/ y/ g1 }2 I! R& _4 E% U5 v3 L5 ?
17.3.1 添加服务器 291
" g5 M B. C+ c6 A. v3 r0 O. u2 w9 ]' J6 N2 k0 J. q0 F6 k) R
17.3.2 修改分片中的服务器 291
8 C$ g8 Q \( ]4 {; @: w' K, K) r5 m& ]0 K* r9 U8 T
17.3.3 删除分片 291
; D3 H1 Q5 Y& z# J) |& S9 L! ], r' j# a& [
17.4 数据均衡 294
; \) X" ~# v/ K7 y& q9 E2 T4 m- i( H$ _% L; T/ `( h! i
17.4.1 均衡器 2941 i7 }* X6 F1 S G' q" a+ t6 ]' b$ C
) U2 ^& `5 V. Y5 z2 G17.4.2 修改块的大小 295
: U" L F# ?. b' P( o3 W" Y: q x; b4 X* ~$ X* v
17.4.3 移动块 2964 a5 j. M4 j% u9 W
9 e) n" _* O( N* Y% {( ^ ]; K
17.4.4 超大块 298
5 x9 f. c: o5 X$ N1 ^6 Y6 X. ?$ z8 H4 w5 Q4 u
17.4.5 刷新配置 300
1 Q0 X( K _3 ?& a. W( E3 i% [: Q) p1 d. `7 t
第五部分 应用程序管理
/ X' T, U. q: |$ h" t3 B5 d( Q) e ?0 L
第 18 章 了解应用程序的动态 3038 A% |6 |2 ]+ h( N u3 {. ], G
. P/ B+ h1 k0 K
18.1 查看当前操作 3034 z5 l3 S1 ?- j5 T* W
+ a5 R( E; ~( Y2 U18.1.1 寻找有问题的操作 306% p2 S0 V* Q5 t/ g: O- _/ i$ {; J# H
& S+ `$ Z, w( t6 o5 L2 m) b& C1 b1 |18.1.2 终止操作 306
+ z3 o; r) o3 @9 Y
/ A9 ^1 N/ N+ d: b1 M& b g18.1.3 假象 307
3 C' u0 D# p% I! j7 ]6 s" |; @) J1 N6 e
18.1.4 防止幻象操作 307/ a( M0 E# N2 l5 e
/ {" b# d, r$ U! A/ D/ K18.2 使用系统分析器 307
- F+ C; M$ B# k9 G% F X$ ?3 Y1 P! C: v
18.3 计算大小 3100 A; x. D7 V2 t
8 E5 Y2 X) K4 o/ C18.3.1 文档 310# y, [. N+ S" I2 u
& `) S: O( e V! S! p0 {18.3.2 集合 3119 B) f7 R" d9 A( I
0 E! B% @2 a+ [ x6 _- H18.3.3 数据库 315
; z7 Q3 U: F6 Y4 f1 Z& A
+ F. O+ R9 W! I9 u6 k; y) f: S18.4 使用mongotop和mongostat 316' F4 L) v, J# e) b) d' U
9 @" a8 ?& t; @9 X第 19 章 MongoDB安全介绍 318
4 P* m k7 @3 f3 c5 t, F8 K, J! g& t' G( E
19.1 MongoDB的身份验证和授权 318
2 a0 F @# r. I& B2 p4 O1 y# Y0 I+ T- J
19.1.1 身份验证机制 318( M/ |2 }3 a" y1 v2 D
`3 s/ O) L( I' e& Z+ D19.1.2 授权 319
; S6 {- R( c, E* ]' ^ r( B$ }. M& {1 E* |! Y+ D3 Q- B; n, b" X
19.1.3 使用x.509证书对成员和客户端进行身份验证 320
/ T" E- Z& L1 K2 c4 G, o0 W {/ x& ^- z% x
19.2 MongoDB的认证和传输层加密教程 323 @" W+ t' Y' X; P
$ C3 K6 I$ x t3 J19.2.1 建立CA 3235 z" {( I2 g9 C+ @ Z* }# C; t
1 R) z V4 y2 k2 j O) V5 g
19.2.2 生成并签名成员证书 327
( L% { p* m: [8 P9 `; r9 r+ z4 z* [, ?/ {3 L. X. s* G
19.2.3 生成并签名客户端证书 328
8 F& p2 J) H3 d& r& B
/ g* l8 ^4 Q P# J9 A! B19.2.4 在不启用身份验证和授权的情况下启动副本集 328
2 B% M+ w1 ]. _, N* u0 q- s. ]5 J* X S6 h; M
19.2.5 创建admin用户 3290 r9 [) Q9 ]2 Z
% I1 d$ p7 M) l4 S% a( l19.2.6 启用身份验证和授权并重新启动副本集 330+ U0 l* n( I, {( e
3 E0 I; q& o$ a- l0 q
第 20 章 持久性 332
, {. M1 i; I" e2 {7 x ^- z
( b7 S- _* R( ?( ]: s! `2 S20.1 使用日志机制的成员级别持久性 332
" S5 D: t! D2 _. V2 H
7 m6 M) [( d+ }: `20.2 使用写关注的集群级别持久性 333
$ d' W! V" k/ m# f* v- e* H. K, r2 \$ V; f) q* |
20.2.1 writeConcern的w和wtimeout选项 334
! n! |; p- ^& F0 q0 h8 M$ R) I4 w7 T4 F: D9 J& R) p- c
20.2.2 writeConcern的j(日志)选项 334
0 a" l! i% _: M( ^+ c, f$ ?
8 }) e; M% Y. m+ D20.3 使用读关注的集群级别持久性 335
6 ~1 F# B, F$ v! p* Z
7 v8 Q; A6 u+ a+ x20.4 使用写关注的事务持久性 335
) E( F7 c# O2 r; C( V
z9 [- l# D& J7 N& g1 L20.5 MongoDB不能保证什么 336
. I# I8 b6 ^% R- o4 m" T
( q" A( w; b5 L20.6 检查数据损坏 336
: k) u1 A! s# G+ E2 N$ Q3 D1 F( m1 C! s! `8 X8 z" A! N
第六部分 服务器端管理
' ~# n/ H8 W6 A( a! {: P1 `4 ~3 @3 e6 D4 K! r& R/ M% I
第 21 章 在生产环境中设置MongoDB 3412 T9 B$ ?6 u8 d) N
6 n7 Z8 L& R. Y) H, B8 v; w( g% u21.1 从命令行启动 341/ {4 E' ?; f! }: y+ l2 k" q! x# W
/ a/ Z# u1 s. q. K0 s; s( j21.2 停止MongoDB 345/ ^: A# q% e8 e0 ~- l
2 Z9 [. |) B) r4 c21.3 安全性 346, l5 r- X7 d s& {6 L, F5 q1 R4 v4 @0 i
" L% k8 G2 F1 p* J/ n- b; Q+ _21.3.1 数据加密 347- \- d: P6 ]) W& r& A9 ~% s% U
& |$ u/ V- u2 ]
21.3.2 SSL连接 347
$ `6 S+ i7 Q6 [2 N$ [! ]1 J7 C: z! g! c8 N* i
21.4 日志 348
* S' h$ r- @% `8 \1 G5 Q, O1 M" L2 B5 X& F% V$ D8 Y
第 22 章 监控MongoDB 349
& d8 u& ^% \1 F8 B. n/ u
: u0 p$ R6 `' p! n+ }( U22.1 监控内存使用情况 349: D+ @) _0 O% C/ f1 o# m2 \3 F4 A
) N* T7 `: ~. f9 J% b( v3 a
22.1.1 计算机内存简介 3498 e/ F3 s- ?4 Q! V* {, q- o
# c O5 C, \- f
22.1.2 跟踪内存使用情况 350
. ^+ \4 @# o( w. Q& h* G; r8 _; _6 N+ N6 R/ [9 p" {, G+ r
22.1.3 跟踪缺页错误 351$ L7 V, c. t$ T- z! w8 A% e
# {( q+ g! M9 w7 z
22.1.4 I/O 等待 352
& E+ t+ @& s# @; i: A. `2 n# {" B0 k a8 e" B: }6 D5 M+ H' B0 p; y
22.2 计算工作集的大小 352
$ Y2 L( M) r' Z! ^& B; P9 z3 U, o+ {; _
22.3 跟踪性能情况 354
5 S% C% ^, R3 Q% m" G5 F6 c; q; f& u9 }
22.4 跟踪剩余空间 3553 j& z1 A; \" i
" _# P$ ~1 k" q' I. L, ?2 Y% |
22.5 监控复制情况 356
* c; ^! L4 J, t
* E7 ~& O d( j" p7 _- T5 X3 g% b第 23 章 备份 359
+ ~0 M" t" y3 p+ S1 ^/ \+ U K% F9 G( s l: B/ A' o% {
23.1 备份方法 359& G/ l/ J. s1 o& b4 b
! t" _% G( T$ J* r23.2 对服务器进行备份 360
' L G6 p8 h$ @
; G" X4 i0 z W+ Y* H" W" h. S# H23.2.1 文件系统快照 360
s$ ^5 B" z' `6 [2 O5 A
( e& ?- V; s3 A( k3 I23.2.2 复制数据文件 363' o2 c- V8 k+ s3 [; }/ v
5 `2 N* a# A" ]23.2.3 使用mongodump 364, }+ |, o6 Y! `2 B% C
: w6 F) c) p \# I q: S) r( Q23.3 副本集的特殊注意事项 3664 S8 x3 y3 U# g
/ }$ Z$ F, O% F, [& `: O23.4 分片集群的特殊注意事项 366: o3 g; a8 b) ^. _9 o J; y& J
. {$ O. K; o- W0 y, i23.4.1 备份和恢复整个集群 367! V* c& O7 Z" A4 w
# P4 V4 r" n x, A23.4.2 备份和恢复单个分片 367; A5 }0 n% a9 s- q* n- L
. }( W% m$ D R第 24 章 部署MongoDB 368 L. q# H" g) u0 \
( [7 g6 D3 _( ?1 g& g24.1 系统设计 368
1 [$ N, ?6 o5 m# y6 U# Z& C6 j/ r/ s0 p' ~
24.1.1 选择存储介质 368
' \3 |0 p" C, p; k2 z! T$ {4 \7 B( s
6 |- n9 H) ]/ L- ]$ D24.1.2 推荐的RAID配置 369; ]2 v8 U% ]# y6 y3 U( e2 Z" P
8 ?/ { q% j k! @) r24.1.3 CPU 370
7 f! n( @# l, d1 L) K1 B, P5 k$ N% c/ M# \1 T! W
24.1.4 操作系统 370
, H$ `+ t5 j- D7 B. G. {& k
+ a$ X2 R, L" \& b24.1.5 交换空间 3702 e; }4 x9 [' b0 `& N0 @
* b* b# h" o' W' L9 F6 q21.1.6 文件系统 3715 F) p, g) S" I( n$ n
5 z( H6 G- L! ~# g6 [1 O1 k
24.2 虚拟化 371
- H2 N v3 |) |- O% k* Z: K6 ]& V
24.2.1 内存过度分配 371
( }/ q2 W2 |) N2 T+ p
* f) Q. { T) `0 G6 Y0 X24.2.2 神秘的内存 371
3 i2 [/ K# j) x: Q2 F( l& ]! ~. a9 H
24.2.3 处理网络磁盘的I/O 问题 372
" ?5 x3 d' G3 m% B
- ~5 u, V/ C# w$ H$ ]* ^24.2.4 使用非网络磁盘 373
2 s1 |. @4 B. L+ e9 s I! O4 ~3 T2 u5 x, s
24.3 配置系统设置 373
' ?6 C' u& G2 W5 t5 T# e, P
, K# _ B9 E% F/ i24.3.1 关闭NUMA 373) I4 r. y3 { k: h. ]4 s
' i: T; H) s5 c5 z0 I' M24.3.2 设置预读 375
9 f" s5 a. N$ C/ s
' b6 R% J: B2 E5 S+ f24.3.3 禁用透明大内存页(THP) 375% ^0 x* m+ t( D* Z) l: w
5 i& J! t/ o3 T+ U. b& T
24.3.4 选择磁盘调度算法 376" ~2 X2 l9 Q% D; i X
/ w( E' r/ i. x24.3.5 禁用访问时间跟踪 3765 f6 t% V0 o8 k
6 g; L4 A; w# \8 C5 `* g24.3.6 修改限制 377
+ r3 z* M% P1 k0 p! g
, g9 n$ d1 z9 p7 N. P, V$ h: D3 k24.4 网络配置 378
3 @% d7 R* Q3 q# K1 ?( Y
, X. v7 t# o/ N! W! |# Z3 |. O$ A# E24.5 系统管理 379
8 g* H- J+ k2 o
( Y6 t6 X% q/ P/ O, D. B2 u* U24.5.1 时钟同步 3796 S" w1 _0 p5 Y' P
X3 S* V2 n! V2 T1 }) d5 w
24.5.2 OOM killer 379
) O5 |# i8 J7 T8 Q' G/ V
6 t. Y: C' }: G9 J0 U24.5.3 关闭定期任务 379, O. h# o/ t" A8 s" @. @5 B. q( _
4 g3 e& A" l5 y2 X& c( k附录A 安装MongoDB 3806 K* O9 J; n, T& B) [0 J
- I! R# e8 F6 e) K
附录B 深入MongoDB 384$ g& @, M# |$ C; A& F
& x- D: e1 g& v
百度云盘下载地址(完全免费-绝无套路):
4 q- [5 w# r! L& Q9 {2 ` |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|