|
Java电子书:MongoDB权威指南 第3版 格式 pdf 电子书 PDF 电子书 Java吧 java8.com0 f; X8 N+ c! Q" z* L
7 L R5 U) s6 G! i8 i
[. k$ ?' {. a4 J( q
编号:mudaima-P0240【Java吧 java8.com】
5 U4 I" j4 E4 w2 x
; \5 f# Y- R6 o; E& ` x' U; g9 Y* ~' a5 H* B
% o2 @. y v4 C# \. P1 X' k" d
Java电子书目录:第 一部分 MongoDB入门# n7 i* W' }3 v3 V
3 N4 O3 `- W( z$ C. k
第 1 章 MongoDB简介 3: w7 }/ f# m: w* M- o
0 X4 a# g9 k! S% I
1.1 易于使用 3
- ^: J8 \: m ^; A5 V* m0 X' z c" U: v$ _
1.2 易于扩展 3" A3 J) v9 [ y: V5 e$ q9 Z
6 k- E' C5 l8 j, d' D2 ^9 W
1.3 功能丰富 43 K) a$ M l" i4 ]3 T2 A+ S
# c2 ?/ A" M1 N. E7 h
1.4 性能卓越 5
6 m" N* s. q0 F3 }/ D' E, M$ E0 d5 R: W. ]
1.5 设计理念 57 N* Z% b- @ k1 @
+ f9 e8 b! ?, v* k; ^( z
第 2 章 入门指南 6, u4 D1 N A& E" `2 c" a
, R- B `3 U K8 O; o. D# L2.1 文档 6
: b4 y, q" s) w$ f8 F' K1 R$ q, I s
2.2 集合 7
/ g, R5 k4 |( G( P/ G# }7 c3 f: m& n7 O0 k: p; e2 P1 T
2.2.1 动态模式 7
; t% G: W4 L |+ [1 e2 d2 ]! ]! f% H: @
* \) e t% f2 v4 { x2.2.2 命名 8
; v* }. z; A) I" N7 V2 d& E' }
5 b6 K+ m. K3 l. O/ E2.3 数据库 8/ W8 m" y. [/ ~; K
$ E4 ], C& i/ c! Q( w& ~2.4 启动MongoDB 9" F' n- ^( {$ ~: e
$ R& i; Q5 r3 s W. d5 ^- K/ E
2.5 MongoDB shell介绍 10
. Q1 ^ X# a/ j, t- Y; x8 b
/ t: N7 x& F) N3 m0 B" p" R$ P8 f2.5.1 运行shell 108 l0 J6 L* d. I& u, V0 P' z
% j3 R Y$ k" _5 t5 S, L2.5.2 MongoDB客户端 11
, P5 p" ^! i6 Z* `" d- D: _- O. j5 D* z, K& Z
2.5.3 shell中的基本操作 12
1 @5 ^3 Q: i( `3 I6 e" b9 q: U& ?- }- z% G; D
2.6 数据类型 14
8 f) z! t9 B! T) a9 s$ n( B; y# B+ m' m/ D. ~6 [8 U5 }
2.6.1 基本数据类型 14 m5 F" u. d i0 W8 M- I
& w1 x$ u+ G5 h+ u {9 s9 f2.6.2 日期 153 s" N+ N% K7 p, @* V) f2 |- f9 k
' d# r/ J8 T3 [' T3 a0 z5 s( Q* x
2.6.3 数组 168 ?3 n8 k- {% B5 A0 |( ^
) o/ X- t4 v; R2.6.4 内嵌文档 16
# a- M6 H3 V Q7 W) B& [% }' E3 R% I5 x
2.6.5 ObjectId和_id 175 E0 G, h! I- {, P( z. e6 o6 X9 \0 ^6 l
* Y9 l: _8 h% B9 p7 K+ B) Q
2.7 使用MongoDB shell 18
& I; C o Q% c4 ^/ Q4 f0 i$ _4 a2 G {1 [3 H9 K* {1 `) R
2.7.1 shell使用技巧 19/ c2 x: |# O& O
9 Q% y1 V5 E% g0 f
2.7.2 使用shell执行脚本 19
9 S! E5 \& v3 l2 q6 c
, R- W% W% U# o$ P! L3 G- N2.7.3 创建.mongorc.js文件 21
' K2 _2 O' N. ~9 z, E' h# l2 c0 x, n
2.7.4 定制shell提示信息 22
- R# a* T0 u8 T
( w: H: u. v/ `, e2.7.5 编辑复杂变量 23
* e) Z# {3 _3 E- K
! l* {3 d9 D3 a* G2.7.6 不便使用的集合名称 235 A3 a+ [9 x o# k; N6 T
5 J3 c% N+ n) P. Z5 [第 3 章 创建、更新和删除文档 25
, p) k/ c+ V7 E& A+ t3 e# Y1 f$ [; [
3.1 插入文档 25
+ N2 o; Y5 A. _& B; t
6 t) g( @- {% e9 i" u0 }+ D; E3.1.1 insertMany 253 f0 u2 |/ L/ M0 O' p
8 {6 J0 h3 j) M5 N$ k3.1.2 插入校验 286 e' `( ?6 J- m/ |$ o0 {5 c5 y
! G Q9 v3 D8 c3 K( H% ^
3.1.3 插入 28" f. V9 k; w2 J# \4 r( \0 y
" y, F" n" a R
3.2 删除文档 28
# s" ?3 v! A( p2 ]( ?# O, O8 a5 }' e3 ]0 r2 n
3.3 更新文档 30$ U) U& j1 O. \- l: ?
7 y9 Z4 @- i& @7 i
3.3.1 文档替换 30: S5 R3 E) r- l/ X3 l6 N4 d
5 x0 w6 @4 M" r1 d9 L( E1 Q3.3.2 使用更新运算符 31# f5 M0 F$ k$ n! A
5 w; t. `8 P6 U% {* P3.3.3 upsert 40
1 D& E7 f6 m" u& j# h& P! R- s: s2 w7 X; z" Z T1 I
3.3.4 更新多个文档 42
3 x; Y$ ^! y# G" D' H/ p6 K h8 r
3.3.5 返回被更新的文档 42( Q0 ~4 W* V; O8 U# n* [) d
C' a$ X$ @; d0 v+ K$ J0 t
第 4 章 查询 45
# q& k$ ~3 h! v& u% T
0 q+ n% v- a( v4.1 find简介 45
; w( U* V; u) j+ V, @) A, o7 K G7 Q ^# O3 i; Z7 ?( H
4.1.1 指定要返回的键 46
1 T y. `; ]( c. i% t) x. g: v
9 G! O0 d2 L: T" a4.1.2 限制 46& ?9 G" j4 @8 g! A- e% f
2 v# _# _" l- `; x7 N8 k, X, x# t% t
4.2 查询条件 47) L- {. s. H3 G. Q6 D# u) m% c
' S8 f+ n) X5 R9 t8 V5 A
4.2.1 查询条件 47: z# c) K& G4 J, B' [
. @) Q7 A9 p/ i1 G% d# T. \
4.2.2 OR查询 47
* k3 b7 d/ @2 X+ g: ` @
3 c4 d# g" m) g# R4.2.3 $not 48
9 x4 P0 y' K# B6 m6 \8 r7 o
" C2 j5 ?% J7 T3 t6 H2 W3 c4.3 特定类型的查询 48
9 _# Q* i4 W) n: y' @. v
+ u. {# B- m! B" L) t0 L4.3.1 null 49
7 ~- d" h$ M5 a3 Q, w, k0 h6 |/ [& |6 u% s
4.3.2 正则表达式 499 |% p! r& t* J6 u9 Q- [" V% e" c) D
3 C7 r& S! T! f: N% b( `4.3.3 查询数组 50
2 a) Q* C& Y, u9 S2 A8 h+ n* u# I* K0 {, ]
4.3.4 查询内嵌文档 54
$ e7 J. }2 K, K: k5 D0 H
; r! n" _5 `" {2 P: V$ \4.4 $where查询 55
+ c' ~# S# {+ D. w% f8 w* P! s% }7 m1 K# k4 u: D3 i# U4 z
4.5 游标 56( o: o% a# l* {
1 H! s, Q0 L. A+ ^! i8 \3 t4.5.1 limit、skip和sort 57. J. v6 j" N( Z4 T$ s" ?% z5 B6 c
5 i9 a3 e# i9 J
4.5.2 避免略过大量结果 58
( h! u- L( ]+ t/ c @( C0 x! H$ c$ b- E- ^; W" P' U
4.5.3 游标生命周期 59# H/ U4 h! Q. V1 t
; Z6 c# B- u* |- n+ ^8 N第二部分 设计应用程序9 N2 J' }4 R1 `, S3 l
' q0 E i$ l3 @第 5 章 索引 63 I9 Q S( T; I/ X
& A/ f0 X# m/ ?; \: w
5.1 索引简介 63
& E; `+ }" @6 Y# ~, M. T: a/ u$ J! q6 m1 R
5.1.1 创建索引 658 Q4 \( b& s& F. s- n9 M# f. Z
, Z1 K6 G* k$ g0 w O1 y5.1.2 复合索引简介 68# c5 x3 X# P( S# L0 ?
% j0 |/ L8 K* T2 l+ d
5.1.3 MongoDB如何选择索引 71; u8 h3 n+ R7 S# ~% l8 v! F9 g
$ @+ W' `( {. {2 S$ \
5.1.4 使用复合索引 72$ q' c- B+ b2 ^- M7 r5 \
% j5 ^( K+ G6 b5 V5 j/ ?# ]. {7 Q5.1.5 $运算符如何使用索引 88# J. l* Q, G' _ s! w
" }) l, X: B% K- [- e
5.1.6 索引对象和数组 976 @6 F+ v" J. r' S# q" f" ~
$ _! z% g6 n) V# Y( K5.1.7 索引基数 99" ^* X: ^6 _ A# d. X) Y2 S
! r0 i7 p8 Q3 R. x \/ g4 W& f
5.2 explain输出 99
6 f# j! A2 \- A
5 q# }: z5 k7 I `5.3 何时不使用索引 1066 }% Y! C' X3 r$ i
; j+ \+ I' |! e! E3 L3 _3 ]
5.4 索引类型 107
" |! N) ^0 k7 u/ V/ d. M! U( [* v0 V
5.4.1 索引 1076 \6 d' C; I; E; `# N4 |4 E b( a% I" F
! Y% a; W H2 }# _" m J
5.4.2 部分索引 109
; O( h: V/ {. {" R* ^+ p
' o$ i, ]4 b) `. l7 r5.5 索引管理 110
& D! f* N6 S' S, w8 w7 u9 M! [7 d; `/ `/ Q7 n
5.5.1 标识索引 111
- z4 X# a- y8 E5 q' G, a5 w; a( i5 J) j
' ^8 @+ ?, e* y- j5.5.2 修改索引 111
- k; |5 `" ^4 y. \: x8 c5 ?& K) Y' D, n; R& d9 n
第 6 章 特殊的索引和集合类型 112
" J# R/ L7 f+ i3 J& p+ E2 s P: U9 G. K$ B O- c& L
6.1 地理空间索引 112
" y/ X+ h3 T" P- I% d4 S9 G3 b* L0 E+ a% ~% }1 Y$ s
6.1.1 地理空间查询的类型 113
5 R3 U* F6 h s. H1 ^; p
% r+ L8 R$ z" E F* S6.1.2 使用地理空间索引 114) z2 v+ R6 x" W7 X3 A6 ~, U
+ }$ R( Z7 w' r7 C) T* w( G6.1.3 复合地理空间索引 1205 v$ w; y5 F: A# X8 D
8 v1 A& Z4 p- f5 S4 n6.1.4 2d索引 121; t! O# o+ |# I' C# t
% G* Q# X* `; }' P [& E" w6 Z# i6.2 全文搜索索引 123
; T6 v; `! `6 Q2 k$ r! k. C, _: U0 j7 k [/ I2 s+ q& S
6.2.1 创建文本索引 123
. X" ]5 T7 ~) O) D5 I- D$ P. L/ i" W' g: ]
6.2.2 文本查询 124
5 P8 V$ u& a& j l4 T8 u# N3 z
9 J; Q+ [0 V, S6.2.3 优化全文本搜索 126
% ~. r. H( J1 N! V1 n8 R
5 K6 X5 t; ?5 t6 c" |* L+ V+ q6.2.4 在其他语言中搜索 126
# \" U. t1 {5 p5 C. s! E9 {7 T5 L3 E) g
6.3 固定集合 1272 |# w7 y! h6 L7 Y5 M+ I- k
! ~. T, E# W# b t
6.3.1 创建固定集合 129
$ r+ A' d, B: |' O" ^3 v. g$ i% |( f7 ^, q6 ?( a$ n
6.3.2 可追加游标 129' ~0 s. S& \2 R# i
6 O6 e# U5 X/ Z: O9 k5 Z$ }. }
6.4 TTL索引 1306 O& ]: f! \3 H, z3 n* I
8 l' o ^- y* ] |! [- W; D
6.5 使用GridFS存储文件 130
2 A) ^: Y5 @. {: S' @6 ]! q7 P" {4 c1 o8 z; c
6.5.1 GridFS入门:mongofiles 131
4 H. J: W, _+ \& ^- K! t& g: O2 v- O0 j6 ~3 l7 I" Y" I2 a1 ?
6.5.2 在MongoDB驱动程序中使用GridFS 131
4 o. \) M% V5 h, I5 o8 E0 \, w) D+ v# }. V; e1 Y
6.5.3 GridFS的底层机制 132! J* S+ Y" }( [* F) ]; G4 T3 U) Z6 Z" j
7 I# ^5 n& d$ p" W9 _, R# Q, |) r
第 7 章 聚合框架 134( t* r* S' ^- P, K
( o3 Z T/ G# f7 |# U. V
7.1 管道、阶段和可调参数 1345 v/ W( F: p I# k) H
+ x& y7 s1 { z( S' i) \; c: C5 L7.2 阶段入门:常见操作 136
) [- {$ L0 o0 h4 h4 G' T$ k, }6 a5 _: E0 @& n: m
7.3 表达式 140
' R& ~" c3 g6 f9 _
6 i0 f9 } p% t* t" L0 A% l7.4 $project 140
0 V% Z/ L. V9 B& q$ O1 j1 L. T% [# c4 f! c# [# X& ?
7.5 $unwind 145
6 A" ]8 @* @) z, F( h! d; R0 H
. w {$ J( J# g) X7.6 数组表达式 151
^) T! L: F' Y6 M: b0 c: V" l
- Q8 I+ \% g& v' O7.7 累加器 155
; P9 _2 H6 _* i7 I
- @" l( |. G5 W$ } K7.8 分组简介 577 i) I' e7 k, g+ W* E' ?9 H
! g! c3 j! N/ p$ D7 h7.8.1 分组阶段中的_id字段 161$ p/ I1 Z* g% O8 X( }' F1 V, N
" O8 |/ u0 r0 X. O/ {
7.8.2 分组与投射 1638 I6 I8 \/ n: O8 ?
: C1 P7 K9 F! E9 W8 }6 a: x- S7.9 将聚合管道结果写入集合中 1661 w: R; I% F% }6 m
# b5 d; V4 `8 ], K; [: \9 T
第 8 章 事务 167
3 ?0 k. ^9 p' p$ {8 M4 ~) p
! N4 `2 f9 Z E8.1 事务简介 167$ M% D& E3 L }* O n
! h" T" G) C# `. T
8.2 如何使用事务 168
4 c! I6 b5 L2 S; m$ e$ v
+ H+ ^! O% l# y7 C' F0 _8.3 对应用程序的事务限制进行调优 171# E Q4 c% O" @, y& R
+ w f5 H1 T. q4 u: B/ |* |第 9 章 应用程序设计 1730 w7 ]; |0 y) ~. p# M
( _5 D8 t4 I5 F, \* d4 p* S9 M4 H" ^8 N
9.1 模式设计注意事项 173
" g* y+ V! `; K6 v/ j, k% b- |$ ]7 m( N
9.2 范式化与反范式化 1765 g2 c9 S d# m
7 f% {+ \3 _7 ?" d1 [
9.2.1 数据表示的示例 176 V3 x# F' z# s7 Y5 ?/ Q' V
- G% c4 R& q1 j5 G0 K9.2.2 基数 180
) S* L ~& A0 Q7 v! d \4 {! }, p
8 D+ y. q2 m9 a* N; f9.2.3 好友、粉丝以及其他麻烦事项 180/ i. W" w9 \* o f: e3 t
$ a, ~, F( Y9 n @+ j
9.3 优化数据操作 182
4 H' w* ^6 F( T1 |2 f3 _) G# v
n" C1 E& D# f' m! I- M, X/ e& t: D# B9.4 数据库和集合的设计 1839 o R6 G7 S$ J
. @4 T( g# @7 `6 U ^! p4 h9.5 一致性管理 1833 o: T) w" S$ x9 ~- g6 T% I
9 j$ }/ K ^( I$ r5 J
9.6 模式迁移 184
* P1 R) z( x; [3 _* Y! Z
8 k$ Y1 M |* ?8 k9.7 模式管理 185# {" x( o. p: Y1 W
% l9 ?$ U5 X2 [+ e) w1 S1 c9.8 不适合使用MongoDB的场景 185
0 \; S- e# B7 i# x1 A' t, |) K/ F8 ~! b1 @+ q6 q& d; o/ Y: F
第三部分 复制
- L; c( ? z* _6 d1 y i- p2 K/ s
3 j8 d5 L1 @2 x- Y/ L; M2 M第 10 章 创建副本集 189# L% Q8 r8 }$ I- d% g! c- k$ m# h
, n3 U! t9 a; S- l' H2 {: X10.1 复制简介 189
& L8 V2 E4 Q' _& F( d! d- v1 x7 V/ g- y3 n7 D' ?
10.2 建立副本集(一) 190
& L: c% m4 {/ F* J S8 p6 H" c% B( Q
10.3 网络注意事项 191
5 K# t: u/ ?5 N, e7 x, P4 s9 V
4 W$ q6 v6 \$ w j" V& ~10.4 安全注意事项 191
" J6 @4 n$ |; O/ T! M/ ^
, X5 Z. K! G3 \10.5 建立副本集(二) 191
: g! }$ R/ X; D d p/ W1 ]5 I ]" ?( w J, j
10.6 观察副本集 194
0 ?# \6 V( {' H) c# |, F/ h4 u* [- ]' d$ O. R
10.7 更改副本集配置 199
B) P' d |4 ~6 @
/ Q" r5 V' ^+ q10.8 如何设计副本集 201
& Q9 g+ k* T& @. m# C
9 t# G7 F! Z* ~; F1 S" u' \7 c10.9 成员配置选项 203
% b$ D/ y7 K. S2 q5 d4 g1 v
+ ~* M# ~1 I' K4 X4 i; a1 P10.9.1 优先级 204* T( w, k- m6 E! w- R
7 b- m6 e+ e( s( G10.9.2 隐藏成员 2049 S! `2 U# P4 d$ v& S
7 p1 R5 V8 f1 K" M% V! I$ g( Q
10.9.3 选举仲裁者 205! [; o) h* Q. V0 T3 T
. P2 [6 G* E7 ?5 ~6 i# X
10.9.4 创建索引 206: O& r i" e! {3 O- A
; x( Q# N% g1 _0 z$ F3 J第 11 章 副本集的组成 207
. t7 U% b0 h* L# ~1 G7 l3 F% N! {5 z. m T3 i. {/ @5 L4 u" N1 r
11.1 同步 207! D! e8 P( H( x3 r1 K; ?
* T8 Q8 k) D" J- r4 t) W) V11.1.1 初始化同步 209
; D+ c% @8 P1 p& l6 W
, J( ~3 o# F# g& ]$ N5 h0 j; H11.1.2 复制 210
( R* |2 f. F3 e) k7 E0 o, U/ h" n+ T
11.1.3 处理过时数据 210) ]! U7 E- e# ~# X7 K
1 I2 T& ?4 @( h% I. n
11.2 心跳 210
/ ?9 J) c) n3 B; g9 a6 @4 L/ _5 ? E0 Y) i
11.3 选举 212# n" W( k* X3 h t
$ N. A* T6 X# z3 t0 J5 a7 p2 C( H* ~
11.4 回滚 2126 Y5 V8 {3 c7 F" n% N% i' o
( `/ r5 |( [: d) p第 12 章 从应用程序连接副本集 216
% w3 v) B) t1 b9 w& m
& H6 l( n5 x, p12.1 客户端到副本集的连接行为 216
$ u) O& O; J; Z( v3 u C& T
& p$ K: B a Z. n1 V' t2 @12.2 在写入时等待复制 218) a/ Y6 M! Y. R# Q# G9 W+ P& I
3 g+ N# h8 w; x/ P, I
12.3 自定义复制保证规则 2197 J; @5 p& D8 E d3 s1 V* f
' A% W: S4 j3 B' e) c. ~+ B
12.3.1 保证复制到每个数据中心的一台服务器上 219
! v& J* p; J5 Y N
% J9 j% a# |7 p9 w12.3.2 保证写操作被复制到大多数非隐藏节点 220
2 O( x7 ?6 E, @8 Y& J: _6 x0 a- }' M9 p6 F9 z* d
12.3.3 创建其他保证规则 221& l9 T4 Z% r' c, _/ s' d+ ?
9 B( P# s. q) I6 K! }+ J12.4 将读请求发送到从节点 221
I& Q& e. i1 s& u% I0 P6 J( a, B* u0 D( N0 Y! G$ o& ]
12.4.1 一致性考虑 222# e* c3 }- h9 `+ m/ w3 m2 }
; } N$ W" q" X* ^( N) M( E
12.4.2 负载考虑 222# R8 K3 T2 F# f+ B; s
2 Y& H$ M5 o# L L: ~4 j12.4.3 由从节点读取数据的场景 223
4 ?+ U7 X- c' Y$ K/ H" F9 ~
8 ^/ D: }6 f, x5 o第 13 章 管理 2240 r7 h% p* z0 h
4 V! Y( h: Y! ^0 H s
13.1 以单机模式启动成员 224
$ V# G0 ?3 [/ E2 h0 R" q! \% t' z
1 U2 j1 y a. E13.2 副本集配置 225! H, Z5 J9 n9 w7 I i4 s2 p
+ P7 q+ W5 V0 k13.2.1 创建副本集 225" |( _4 m( H( M2 l6 S! x0 c
9 M! X, j4 d; c: b; _! J
13.2.2 更改副本集成员 225% n3 B; T+ ^/ X; ?
( c2 `5 ^; ~) t( Z* }
13.2.3 创建比较大的副本集 226
6 P3 X% }6 S5 R. @: K/ O9 L
$ c. d# B; f. N4 A. r, j13.2.4 强制重新配置 226$ _2 s2 A) Q" K% X# G+ q- c3 o ?
/ l" t, [: `/ z" j
13.3 控制成员状态 227
7 R+ o$ |7 e1 ]! n8 O
6 Z* U( w$ \: a P2 A13.3.1 把主节点变为从节点 2270 m/ X- ^" Y$ [
7 D4 R/ N' T$ |6 N- J13.3.2 阻止选举 2271 P# Y K3 d5 _, q8 p
7 G" n0 y; j, D) W% P$ N+ [2 G
13.4 监控复制 228
+ R2 _- M6 h- N) Y, S) H2 [5 b6 \$ a4 a7 O6 n5 ?7 @0 V2 {
13.4.1 获取状态 228+ t2 s @% z, H5 n8 ^9 o( g* t
4 k( T; }6 ^0 E" j' `
13.4.2 可视化复制图谱 231
0 m5 `" D3 W1 f6 g) L! w! l9 l# G5 ~/ ?4 g7 `- X
13.4.3 复制循环 232
; |# }0 A" Z+ p
" r j0 e! Z3 c5 {5 F, Q5 K13.4.4 禁用复制链 232) x1 F% N8 k: r# b
$ @3 `& J7 Y! v5 E1 F3 }0 D13.4.5 计算延迟 233
, N" t0 c$ f. Y
2 @0 ]5 b; P# I8 P6 U2 D) m: }13.4.6 调整oplog大小 234
2 }2 {' J$ S4 k, [# V4 o# N, M! h8 Q X6 _, R1 n$ z
13.4.7 创建索引 234
4 U& N0 a' l; U) X3 Y
+ J8 \, ~2 {( [5 t) Z p13.4.8 在预算有限的情况下进行复制 2355 N. |; ]. p7 {' Z
7 g9 G" G3 U# q: f1 F
第四部分 分片/ b9 t# E4 @" c0 u1 \" J0 S7 H: R0 k
. l" m9 [, k- h( i6 a# X0 t0 Z: }$ p第 14 章 分片简介 239/ `( Y" e! w% o2 T3 R
5 E4 b8 C% N/ S! i% o9 K
14.1 什么是分片 239
' @5 m/ H; o Q$ z' D
+ f+ h6 ?1 p2 V8 m$ {14.2 理解集群组件 240
1 g% q. W7 A3 `+ f( Y- P- Q0 v$ H$ t& U. h, w. m! g
14.3 在单机集群上进行分片 241
$ b% r$ k0 {, v6 | E% ]$ Y5 e" H$ a! a% d
第 15 章 配置分片 250
& I$ C% {9 g! @$ Q# u, @' Y& `6 Z7 e
15.1 何时分片 250
$ B G9 [! E2 ]% j3 g, D. p( o( H2 e6 q/ k4 Q$ t' d! V
15.2 启动服务器 251. Y9 C7 E: o' B3 w! z2 w7 O
4 P. ~- C' f5 R% B* }& ^1 }15.2.1 配置服务器 251
; K3 B3 G8 o; F8 Z7 f( L+ t3 F! ^& L! E& m/ c
15.2.2 mongos进程 2520 ?: W2 Y# |1 p' `
6 m& Y5 i) N5 H4 Y! `
15.2.3 将副本集转换为分片 252: Y/ x6 \0 i0 `
& g2 U$ b$ b- \! | g/ O* ^
15.2.4 增加集群容量 256
7 Q, o. V8 v/ r) k( e
% O9 @8 m6 Y" V15.2.5 数据分片 256
- H* B# k" ]8 J+ Z# J% X
2 n* ?7 I( b S! c15.3 MongoDB如何追踪集群数据 2560 R' J5 v+ p, ]) O W' ]2 e
8 H9 ?. L7 x% {' {$ d; W: J: f8 q
15.3.1 块范围 2570 X! t) u n7 u! T3 p$ r9 ]% P1 b
* p7 s6 M( {8 g& R" G+ g, V
15.3.2 拆分块 259
4 W0 J( l M* V6 A2 R+ q
2 M% s8 C1 k" @, m( F* ?# H. _15.4 均衡器 2619 |8 e0 D1 @% y2 ?7 K5 B
9 A R6 ?/ ~ h U3 ?. M w5 I
15.5 排序规则 261
/ w0 W5 ^8 Q0 k
! u" Q- f. Q! a, Q15.6 变更流 261
8 N9 K0 b0 W" Z. x" H R! }2 t
2 O0 ]1 I, t3 s$ _' X! Y: ~% d z第 16 章 选择片键 2634 n; f9 W9 \* W
7 Z" w" X- \ m7 X. d7 f% B; g16.1 评估使用情况 263
* ^3 r/ a# m5 k: f* E- N5 C% G% T/ v5 c! M9 o- F" ?9 V
16.2 描绘分发情况 264( C8 \ s) J: X
1 ?0 r/ F/ E$ m3 V16.2.1 升序片键 264
( G" D8 E$ x0 E" Q" l( \3 c0 o7 t
16.2.2 随机分发的片键 266
$ I5 M _0 B5 b6 X4 y: }/ G9 L3 f( v2 c3 r2 ]: ~( Q
16.2.3 基于位置的片键 2671 o% ?9 c3 b; i' W1 I# v! k
0 X( k6 P6 G4 _: p! |4 K
16.3 片键策略 268" y( o5 p, s1 n. S
7 d$ S/ i6 m% G' J/ x0 m) w$ P16.3.1 哈希片键 268
7 ]% k ~. P# j+ c8 j+ N; ^# w4 v% P( c; R3 `; x, ~
16.3.2 GridFS的哈希片键 270
3 {; n* _( L5 K! x9 M K
4 O7 Y2 q6 i( {; i16.3.3 消防水管策略 270; d7 t0 D% X5 b; H. h* L
~. j/ d: O, O( U6 P
16.3.4 多热点 2713 e% r) r; x D. S
0 Z& x) h3 i; n7 R! M
16.4 片键规则和指导方针 273
+ P* B* L8 d$ n9 w' U u# k+ V1 i7 L9 P8 Z M
16.4.1 片键的限制 273
+ q5 x+ d. L! [+ t9 y2 Z9 F7 h! J0 `( k) U
16.4.2 片键的基数 273* c) |$ F0 N0 a- m t7 W) H n
$ Z! j2 v9 W9 S6 g* g) _16.5 控制数据分发 2735 R3 h1 n* R }; L
3 d1 w0 H. K. G- R3 B16.5.1 对多个数据库和集合使用一个集群 273- A3 a# i/ Z3 L: ^6 F ]
) C/ ?3 d- e5 C% o0 X/ |! B) o z- e: E16.5.2 手动分片 275: P) u$ h$ b9 t2 f; \- v( h* J2 J2 C
5 d6 T; N% Y0 q' x第 17 章 分片管理 276# M2 M' {7 |$ Y8 C3 l" c
7 i- i: s0 n4 `0 R2 p( Q17.1 查看当前状态 276
; h. o* n/ w+ B) t( W7 @' P. {5 m2 @" E0 `% A; Y
17.1.1 使用sh.status()查看摘要信息 276# t& \2 u# Y# h& ~2 {
" G$ K" E1 U2 D0 N7 Q3 o0 x7 g/ E8 o7 E
17.1.2 查看配置信息 278
, J! k( U3 W: X# x% \! c4 L( s% e; C
17.2 跟踪网络连接 283 d/ D& ^. W2 s
7 O5 W6 s. N- ]4 r
17.2.1 获取连接统计 284
; V% A' ]$ r7 T, O& [
9 \, A8 g( W4 Y& l8 {) w$ G17.2.2 限制连接数量 289
% d- ]% ^1 Q% Q9 [! Q& U* s. n% L+ n3 L; z6 E5 f; m
17.3 服务器管理 290
5 I, {/ ~3 a4 h- ?3 W5 f. j
! X$ s' Z0 V9 M$ Z: |17.3.1 添加服务器 291
! ]# a4 I5 X% `8 G, c! y- b: M2 ^; F: g3 g, d
17.3.2 修改分片中的服务器 291
% E/ j* ^5 _0 x, D5 @2 y( _" p. ]- M* @
17.3.3 删除分片 291
# r" b" b1 Y) y+ ~- L
$ y" V, a5 ^6 [% \/ w; @17.4 数据均衡 294
0 _1 ~% A2 f `# ?* k# O' o- h. D
+ B5 M2 Z/ |! R& k' _17.4.1 均衡器 2944 J2 ?, |$ V$ ^0 L3 R1 F, c
7 C/ p$ h; M& b2 C$ u! I4 ^17.4.2 修改块的大小 2951 {" f& B/ D- H
* p+ z1 [' t7 P) |, p7 J17.4.3 移动块 296
1 r- r+ b$ y5 B% x+ F. E5 P3 z' b% Q2 c x
17.4.4 超大块 298
4 _8 B, k e5 n3 u7 ?1 n# O/ K6 K. m ^4 @
17.4.5 刷新配置 3008 W( K* b# b, v: L0 U0 R% p
4 b/ F7 e/ W* Q* }第五部分 应用程序管理
3 Y: i3 C. m; S% w2 { z/ ?5 ^* O2 Z, x& I; Y7 C- R
第 18 章 了解应用程序的动态 303
9 R4 x& u9 O6 i2 U, v, w& P' M/ }+ D) k( N9 r* o- W4 {1 d
18.1 查看当前操作 303
; W R: G/ _4 }; j- e
) R$ t. v7 Y3 I; `# m18.1.1 寻找有问题的操作 306
9 f) ~3 A% x# F* m. D9 R* u5 ]% a; f/ x$ x9 k
18.1.2 终止操作 306% Z% Z- z: L1 t3 V
}' {% G. O! ?: M' f
18.1.3 假象 307
* h8 i8 i3 Y4 K+ e- H- ~4 u/ Z" N. w4 f) L, N# c& Y3 k
18.1.4 防止幻象操作 307; G6 Z% r1 \$ i `' O0 k& n; m
4 R' z6 v4 B l3 v0 E9 } J18.2 使用系统分析器 307* m) f! h3 n! j s7 V' O
q I& F( U6 I$ l9 r
18.3 计算大小 310: p$ S0 D: B' p" b
8 Q z, V1 [/ B9 Q6 w. i18.3.1 文档 310
1 ~: c* o: Y9 M- q2 U+ x+ `1 C, J1 A: ?# T$ o8 W/ h
18.3.2 集合 311
! ^2 N2 q& w5 Z0 x$ g. M9 r; W5 O2 o. c3 I
18.3.3 数据库 315
+ e% _( T# s! b* f5 ~, |
/ K: d8 Q; _2 g3 C18.4 使用mongotop和mongostat 316/ l/ \7 G9 e, R& p" V" a
; O+ q4 ^' `" i2 Z第 19 章 MongoDB安全介绍 318/ H" P9 f. x5 z5 W, K5 S* a
& p$ H. R6 s; Q6 t6 M( Z
19.1 MongoDB的身份验证和授权 318
9 e x% s6 Y& l0 T8 W6 _0 z" G! [+ F- `% m4 v0 o
19.1.1 身份验证机制 318
9 h& M+ d, G$ Q; v9 N# v
" e+ H7 C+ S7 p J$ K9 g* C$ _( A19.1.2 授权 319
, H5 _- b0 ^8 K
, b1 a( M8 D9 p6 H+ C( F" D% ?+ d19.1.3 使用x.509证书对成员和客户端进行身份验证 320
6 ]+ b$ x2 B" c( O; E. S: y: ^" \- p1 y0 K4 z
19.2 MongoDB的认证和传输层加密教程 323
* R- E4 E6 |5 T' G8 H: Q& O7 o/ S. i# @+ @
19.2.1 建立CA 323; n% P8 G: y P; h
" G0 ^% ^) c. ]% w7 w19.2.2 生成并签名成员证书 3271 n2 ^2 w( h* r1 R: ^
! r7 U0 ~5 Y! U19.2.3 生成并签名客户端证书 328
9 R \' t: `" g
! F, @0 d( |* N, m+ U4 v$ w1 @19.2.4 在不启用身份验证和授权的情况下启动副本集 328. u" N9 U2 S" y* j: }0 d
. b( X7 E6 a- e
19.2.5 创建admin用户 3296 H7 A5 d" ?# y2 o
$ B0 g& t9 k7 N9 }% m: v4 S" e
19.2.6 启用身份验证和授权并重新启动副本集 3308 c# o' `% p6 e, Y, e; H& S( j
7 ~. G7 V7 A( C" }3 p第 20 章 持久性 332
, v+ m% ~5 ?8 @3 \ \
2 z' m/ s: o/ x9 r# B$ w20.1 使用日志机制的成员级别持久性 332( e8 y2 F# y+ N1 \: D5 c
/ l a# R& L0 ~2 Z3 I2 `7 u+ O( v/ u20.2 使用写关注的集群级别持久性 333% m7 m( K- o& u! l7 P3 k4 n3 H
% E. |& c0 U) F: v: d
20.2.1 writeConcern的w和wtimeout选项 3343 Q& k$ t" [$ K7 t( a) E! t- e
2 G6 J3 ]" k, c$ Y* G$ x
20.2.2 writeConcern的j(日志)选项 334
' e$ z0 {! @# Q* n* C1 q% T1 ?$ ^# Z9 w" D% h6 r, W' ^: a1 k# V' O% [( K, P
20.3 使用读关注的集群级别持久性 3358 b" ?3 t% e! V6 _
8 f( s- E/ m0 s/ I' T" w s! g20.4 使用写关注的事务持久性 335
) I0 m( Y3 r" Y- Z( }* K
1 h" |; p( h E# _& A2 h20.5 MongoDB不能保证什么 336
! A# B3 F5 L' l+ A
, |8 u1 V. d2 i4 c, E20.6 检查数据损坏 3364 {3 f( v4 `; t* H# C2 P, Q
7 {# W+ A i- v" C2 e
第六部分 服务器端管理$ V' s* n) A5 d+ x: B& d8 z1 J
# F6 t% D4 p7 ]; h
第 21 章 在生产环境中设置MongoDB 341) K. U+ U; w* t% }4 k! R& e$ l9 c9 E
( E- `6 X. V5 y6 v: G: @21.1 从命令行启动 3412 B% M- W' q( \' m, v4 ?
; x' X. b% v3 ], O
21.2 停止MongoDB 345
) Q- J- e- e4 i, }
6 L9 n6 ~$ W: ^21.3 安全性 346
0 Q0 {* [7 S7 K! A
% n y% L* S- X. I# ~7 |21.3.1 数据加密 347
; K v2 H6 p8 s5 W
! b4 w# H) [8 W, c4 Y21.3.2 SSL连接 347
* L& m* q3 B) B2 U% x L7 |. M! }' ^0 G# ~5 n J( m
21.4 日志 348$ U2 V2 P8 [+ f( Y" N
z7 P% f) Z3 o8 m! {% I- Q$ Y第 22 章 监控MongoDB 349
* _/ k, T. `6 ~/ Q6 J3 s2 ], X3 h; s
22.1 监控内存使用情况 349. M% D0 J6 k: [9 O) m
- [# S* N- m8 v5 n4 c9 Y
22.1.1 计算机内存简介 349
3 Y! ^7 y( l( j" I
1 u, a+ R" p+ T9 r! ^3 t22.1.2 跟踪内存使用情况 350
5 O: y% N# C1 A4 a0 Z6 O
8 Q R1 `2 [: F9 b6 L. g( G22.1.3 跟踪缺页错误 351
' R5 f, p4 @7 C, U5 \8 U: }! s7 j) G# c8 E) @
22.1.4 I/O 等待 3524 _+ }2 I2 p9 ]3 y' `6 q: w
5 A; s! F2 p) r% Q) r
22.2 计算工作集的大小 352: s( r1 K" _/ x; L
" R6 o0 z7 `0 O9 j
22.3 跟踪性能情况 354( e- m1 V6 V8 ~+ Z
2 k8 `0 A% {/ Z$ L5 D22.4 跟踪剩余空间 355" n$ \4 m! \- b
L- N+ j) ^ Y- T* e* l) E5 I
22.5 监控复制情况 356; c7 ?" f# @4 i( |# O ~* \
' u! m1 z, r$ J: @. |6 Z3 ]+ v
第 23 章 备份 3596 ~2 e2 q! E4 n x. ~
& q* M, m* @5 c& Z; w( I, l5 u23.1 备份方法 359' x/ e' M. @# c" p9 ?7 L6 Y5 O
6 t8 p$ c* @6 k- G( j7 o
23.2 对服务器进行备份 360
4 [+ q+ s; m% T- B3 i: e2 }9 z1 A
2 G5 g6 R) c. A& v& C23.2.1 文件系统快照 360
1 F" P! [( j/ Q4 ^# T7 M3 t
* t2 F. D8 b' z8 N23.2.2 复制数据文件 363: d* m% E h7 }
$ r1 H/ n& b3 P* C- o6 q
23.2.3 使用mongodump 364
% h& g% {( w, q8 p* y2 x
( _, j' j; w+ j# d* C/ P23.3 副本集的特殊注意事项 3668 v) G: s8 o1 ~& C+ t+ ]! U
# Q/ N- v' B3 \! y" Y$ Z! n c: P8 p
23.4 分片集群的特殊注意事项 366; H0 a! Q2 U$ W- U
/ L6 B( E% e5 I9 c: c3 ?* r
23.4.1 备份和恢复整个集群 3671 t1 J% B i$ \ T4 \6 ~
h$ t r. }+ \- |; m, R+ k23.4.2 备份和恢复单个分片 367
" H, x5 d) T3 J9 X+ y6 z0 d$ B
' v8 O, r0 z+ M: @" o第 24 章 部署MongoDB 368% ]4 K4 f3 M: M l% x# W
0 j4 K" H( _* |+ G6 F4 U/ B
24.1 系统设计 368, s( Q( z( P1 x" T* ]1 z
: N3 T8 ^/ B0 t# b% T24.1.1 选择存储介质 368( ?. t: B# E* C5 ~1 }; r; ?
4 j: a8 E4 u3 `" A4 z1 k24.1.2 推荐的RAID配置 369
- c" m. v$ ^% z" Z" T
, V1 q6 F( t, Z6 E) C24.1.3 CPU 370* _2 p- q2 [' U
z# w! G" `! c/ K. x5 ]7 K" M u
24.1.4 操作系统 3705 f# o% {' p. c4 n3 v. R+ n0 T
4 H4 U" g3 h$ ?& K [4 P
24.1.5 交换空间 370
' c+ L# P9 q7 l' v) e/ o, V0 K9 n! C* B9 m9 M& S; H
21.1.6 文件系统 371
; N' j; [% I% K+ K9 |% D4 r& s% j: w8 ~4 \; J; x
24.2 虚拟化 371
; X# x8 B/ L! [$ G
% p+ T' a: Q* B: ?. p- z24.2.1 内存过度分配 371
0 u- ?+ u2 G, S7 K, H7 n! S# e1 l1 o e. g0 u$ o
24.2.2 神秘的内存 371
. b; S6 v& V$ I* x2 i# T
! R% l2 v6 N; g! S; ~4 z24.2.3 处理网络磁盘的I/O 问题 372
. X i% D8 U" Y; ^' B' k! W7 _( t! R I7 Z, Y
24.2.4 使用非网络磁盘 373- t: |" l/ M1 ^
. S: l6 t4 y# j7 V/ v7 t24.3 配置系统设置 373 y4 k* C7 X0 b
8 B# q. q) @. ~) I4 |1 J24.3.1 关闭NUMA 373
- ?: u& u# c3 o' t! ^9 o
6 o& Z# |% z3 K- F24.3.2 设置预读 375
: e; w _! W; o( m/ Y
Q' Q+ y" f5 }& \+ B24.3.3 禁用透明大内存页(THP) 375
8 q8 d# a3 [% ~7 b; \' _/ }7 z6 x- s& n! w7 e2 q
24.3.4 选择磁盘调度算法 376
2 B2 A* K& X. R9 o3 y' Y7 \1 t8 K
24.3.5 禁用访问时间跟踪 376
$ H* G3 h9 Y1 o
* h7 e- c* H q5 @2 q' w* \24.3.6 修改限制 377% S& j# C4 o9 a( \) i
q' i5 K' n# |. C
24.4 网络配置 3780 B, U9 k) B+ y4 \0 j( v! {! D
! j/ C" w7 s/ {# w% M) c
24.5 系统管理 3799 h) \8 _+ u* i0 O6 L6 L: }
" {' d% ]: O5 S8 D6 g
24.5.1 时钟同步 379
. g9 r# y8 [+ h4 b+ T
0 b9 k" x/ K: j! \- y0 ?) a24.5.2 OOM killer 379
4 S: M. ~, ^9 B8 j: B3 }0 @/ O
4 A r+ R; j5 }6 g24.5.3 关闭定期任务 379 J' ^$ e% k- J0 I; q( a
$ M; Q; D# ~; L) s; W3 d附录A 安装MongoDB 380
% Q' Q5 _" O' ^0 ~* k( w
0 j0 I3 m: D& ?( `! D' P8 m \; T2 H附录B 深入MongoDB 384
3 i, _2 p j0 \/ o) S' G# U) I- C% P9 w: x, a
百度云盘下载地址(完全免费-绝无套路):
" n8 \5 U1 R- c3 l; b |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|