TA的每日心情 | 开心 昨天 10:36 |
---|
签到天数: 393 天 [LV.9]以坛为家II
管理员
- 积分
- 12895
|
Java电子书:深入浅出MySQL 数据库开发 优化与管理维护 第3版 PDF 电子书 Java吧 java8.com
1 r7 u. S7 Y; A4 A6 {, W4 P; v& i& p& r* R3 X" ~1 X1 ?- i
作者:翟振兴、张恒岩、崔春华、黄荣、董骐铭出版社:人民邮电出版社出版时间:2023年02月$ w0 l* r: M/ u! {6 a6 Q+ l# c
7 B: Z8 z4 t; f! b9 _, r9 M; }
编号:166-Java吧资源免费-X0211【Java吧 java8.com】& Q0 c) F9 Z8 v5 w& A
o) U( j. |6 ]0 R5 \9 C
, X* U/ u% B$ m* E0 y# N3 x' R. l
3 ~' K# }' Y' J: g目录:
/ _& c; H- h& q9 x! [第 一部分 基础篇7 L0 w1 N8 z. j$ S. g
2 O6 |* q7 @* R& r4 r9 g: d, p第 1章 MySQL的安装与配置 2
! c9 s4 \$ Y$ }4 o
- z3 x& p- L4 a ^& k ~1.1 MySQL的下载 2
4 z. L) O) D6 X, `5 x; z7 S' N d+ `( X" k( E9 l% N
1.1.1 在Windows平台下下载MySQL 3
3 \3 s5 q# F' h( L0 {; }9 t9 P8 J2 R7 M/ R$ Y1 c0 k1 l+ n" f* X& y! _
1.1.2 在Linux平台下下载MySQL 3! `9 u" q6 a& ?4 w3 ]" \/ }
; |3 n: T9 R+ [ ?6 {1.2 MySQL的安装 5
8 e+ F' c2 V2 V0 B2 b9 l# @/ a6 d! Y) E5 J
1.2.1 在Windows平台下安装MySQL 5& X% X% t# x2 a/ F4 n* l, e
( w# v9 J) G0 t9 P: b r3 ]2 m
1.2.2 在Linux平台下安装MySQL 81 ?" X, l6 o' S% T: ^1 ]
3 @% M# n, m: \7 o& d0 d e
1.3 MySQL的配置 12
z1 m( ?4 e! w' f! G) {) b
! y& O! Y# `# B( w) n# _ ] W1.3.1 Windows平台下配置MySQL 125 a' Y- d J7 R. S6 H( _4 E2 P* N
' R) ]' o$ q n0 ^5 s2 ~: ?1.3.2 Linux平台下配置MySQL 13
3 s- n+ F) Y2 m* Q) W a6 H( o! L. x5 R4 D. }+ |
1.4 启动和关闭MySQL服务 13/ O `2 _3 X# V4 k n; J
6 u$ b- {, d; z' a: q
1.4.1 在Windows平台下启动和关闭MySQL服务 13
1 X# x/ E; H7 Z* ~. _6 j6 [ @3 t! y* M3 z/ j$ u
1.4.2 在Linux平台下启动和关闭MySQL服务 13" P9 H- p+ M6 _3 L: K% d% h
0 \8 `8 k+ R, P; S. ]6 }6 [
1.5 小结 146 o& Z' z& G, N+ n5 N! l
2 z7 s* p$ Q6 D第 2章 SQL基础 15' b8 d A/ J* u o( z
4 O) ^2 q( L4 D2 I5 F
2.1 SQL简介 15; I7 ~9 n: y$ B2 `
( @: D* p( n0 U9 J+ i
2.2 (My)SQL使用入门 15
/ M) B$ {- D9 E
0 q- L$ Z7 a4 ]4 c4 T9 x/ _$ s2.2.1 SQL分类 159 N9 z3 x. K$ w9 o0 Z) [% E. a
# U$ u4 Q3 i1 ~8 O0 ~* P8 P1 X1 M7 v
2.2.2 DDL语句 16
% h0 | b# x4 |, W1 M- F5 n: i' ^# }) U, w
2.2.3 DML语句 23
: J* h ?% q e& L ]( D$ B- H- G! N$ a+ Y. w8 U
2.2.4 DCL语句 334 z" h! S" [6 K; j0 ]
- a# Q! W# ^2 B$ ^
2.3 帮助的使用 342 f2 M0 s. \) v9 a
2 s- z. K/ @5 D B4 F$ T: | H
2.3.1 按照层次看帮助 34( Q% [: s# N6 }* O* y0 u
3 Y0 X7 M/ U: Y: L: G" Z2.3.2 快速查阅帮助 35# T' X7 |( \1 ]/ Y- m* K' n1 Z t
; M6 h6 _$ _ v! K2 w# {2 z
2.4 查询元数据信息 36/ t- _; a8 V) y+ D
* i4 z( B5 Q( H) A- w2.5 小结 37
! H- ?; \! }7 @/ t- ~$ k( e: n2 o7 y
第3章 MySQL支持的数据类型 38; f$ M; c3 E9 k) n
' {9 C7 S! ^& O2 z4 @
3.1 数值类型 38' T9 j4 m9 a& f1 z8 n
0 G4 I. k, C N9 a1 `7 T3.2 日期时间类型 43
0 d" x, k8 O+ B# H
2 I/ U1 t4 x$ m3.3 字符串类型 49
* Y. X, I. _/ g% }
8 |% n z7 ~9 Z1 y% d; i6 F3.3.1 CHAR和VARCHAR类型 50* t4 ?7 Y7 p2 A2 a& o* s! S4 |8 S
, k) L- h- P5 Z7 K
3.3.2 BINARY和VARBINARY类型 51) ^4 \5 e$ k& I1 Q
1 E" k% D3 d$ Z5 r5 \3.3.3 ENUM类型 51$ N! x6 K: P4 L, ~0 K9 V7 f
% r5 X- U+ M. m0 X
3.3.4 SET类型 52# i8 E A& j- a9 Y# a
1 H# e) l( Z G3 x& ?9 S' n- e
3.4 JSON类型 525 ]0 @. S- V S+ P
1 f* N5 F4 R- f" _) f3.5 小结 54
% [/ ^6 W5 \, I0 S( \- l1 w/ H! r: h% I
第4章 MySQL中的运算符 55
+ `2 q% g3 p: E' ^9 J; y( x' c0 y! W
4.1 算术运算符 55
3 D$ j6 J B" E! b$ z
! G6 ^) v6 i" Y4.2 比较运算符 56
. y7 b L% y' X, R# }9 l
: B+ T6 f; s A& t' _0 y0 b/ w+ P! k4.3 逻辑运算符 59
# a0 C" H% Q7 l/ C
8 D8 D4 R+ N: p# b% g, ~4.4 位运算符 609 {, u5 o3 H- ^& V, P. r6 L4 V% P! G
0 T/ R, O. I, Z# A5 @
4.5 运算符的优先级 61) ^0 A. I, O4 g6 i
8 O) s3 D# R3 ^5 r# `/ U4.6 小结 62
/ ?8 Y2 x+ u! A _- F N8 w3 q$ ]& s
0 q" Q+ K' R) }4 @第5章 常用函数 63+ R5 |. a+ z. D- A' L- U6 M v
2 a# h/ f. {8 C9 n- a. K5.1 字符串函数 63
: t! [3 U! z6 A {" U8 j( k S! k0 H
5.2 数值函数 663 y1 U( h3 R1 y/ G+ t% i A# g
. _. ~) w' F) {5.3 日期和时间函数 68
|% G+ k& t/ K
0 f9 e7 b( P/ T4 i, Z+ a5.4 流程函数 71- J" t' R7 d. O
; k0 q( c! z: `3 v4 K2 c* l4 `
5.5 JSON函数 734 @. S- P' c2 r) N
, m q, a. N/ z# K
5.5.1 创建JSON函数 74/ P# z8 |7 M* @$ H' n9 d. T# K+ k* W
7 I$ [* H8 T* h
5.5.2 查询JSON函数 75
# A/ h6 f1 O' x z r# }2 s
9 f& U. R* J& x% u) _5.5.3 修改JSON的函数 79
( T& T# O% I+ W7 @( [9 q. K. |3 Y; r: z( P. G/ M
5.5.4 查询JSON元数据函数 81
; ? p! A6 }, H! k! F/ ]( d* q3 `* A" j: Y- ?3 ?7 R$ f/ ]
5.5.5 JSON工具函数 83& w- }. ~9 a! I2 Z6 S; s
/ X: G$ B2 k; O6 f
5.6 窗口函数 86
; P) W9 r8 z& }* K Y. o" P q5 M2 L( G1 z" \
5.6.1 ROW_NUMBER() 87 m2 f) a7 }: O" c6 C& k; I
$ I3 E5 U$ p. T9 N) M% n
5.6.2 RANK()/DENSE_RANK() 89' O& B- t2 T1 h3 e1 s1 b* \
W+ I4 p0 O/ G1 B/ X( D* P7 J
5.6.3 PERCENT_RANK()/CUME_DIST() 89
3 l$ A& c* B, U: t" Q
. F2 G$ C8 Z* ^" w0 H0 c5.6.4 NFILE(N) 90
7 j3 }& A" V* w+ N6 v$ |* \$ Y- r
5.6.5 NTH_VALUE(expr,N) 91 e: \$ \' s% o" X
1 W8 F+ Y. c. h% R0 V5.6.6 LAG(expr,N)/LEAD(expr,N) 91
8 m8 d Y% k! i, k$ L
! ?4 J+ f% H- t& E5 _! Y5.6.7 FIRST_VALUE(expr)/LAST_VALUE(expr) 924 N; t1 P- u1 u( j- E: x2 ?
2 q/ ^8 M& k% o9 R- m0 E% X; m5.6.8 聚合函数作为窗口函数 932 y, h6 z- S: C3 [; q' u
7 ?: w- F- V) S1 t0 I6 D3 \
5.7 其他常用函数 93+ i o, v+ }3 A: @( u/ r4 e
$ P4 b4 F e5 }* E8 f; h( W
5.8 小结 957 p9 ]% E V) P+ u- u. `5 R$ ?
+ j2 B, D/ b+ i- k* Z6 s1 ^% a& Z: a6 J7 {第二部分 开发篇
- i( _+ _' R: i' b8 ~
8 q* @$ K D, h9 h( Z0 h% o. N第6章 表类型(存储引擎)的选择 98- m7 K' b( \6 K/ R8 ?: |' t
8 Q( g) v+ m/ V4 }) Q+ E+ l6.1 MySQL存储引擎概述 98/ a W$ t: b; m; R$ q8 _9 o
: L; o. o! Q4 I
6.2 各种存储引擎的特性 100
3 U) q: ~' F- U$ n% ?/ q# s/ D* M# C- G
6.2.1 MyISAM 101
+ p: T+ j1 M- w2 ]6 v' g' _+ h9 j! I, K" r
6.2.2 InnoDB 1025 y& X! `2 P& y
( k5 H8 R {& k: c8 d
6.2.3 MEMORY 108
' `6 _; _0 ]* J" e
a. P/ F8 b7 R0 O4 V% C% p6.2.4 MERGE 109' e0 l% s# I1 F! x3 G8 A
( Q t. m4 B. t% O9 o+ n6.2.5 TokuDB 111
$ ^6 h0 D- Y* R, a+ Z/ @9 i* x, [
6.3 如何选择合适的存储引擎 112. D( ` e$ T7 a. ?0 t! p% O* C/ _/ s
- c9 E- d2 k/ L4 `
6.4 小结 113
7 T3 _ d% d+ H5 O" Z1 r8 d7 I( ]" a8 l! C; F
第7章 选择合适的数据类型 114
$ k: c1 S0 k5 g( t9 k# R
0 E' Z& D/ s1 Z" `/ _7.1 CHAR与VARCHAR 1142 K+ y; v( S2 M6 d, K! K: h1 W" F2 V+ }
9 I4 G( d g' X ~7.2 TEXT与BLOB 115. W* T( S5 _2 h% ~0 r6 p. k, i
, U2 n" Q7 f& J: O1 p) X
7.3 浮点数与定点数 118
. I! n9 E* l& I5 s! N# i$ H. z0 s) B. R Z. ]. t
7.4 日期类型选择 1209 F0 T& U5 i9 ~% H7 V& [, ]
- w( M* V- z& ~( g% l) i& S
7.5 小结 120
! b6 ^ W3 T) `. {+ b4 k. g0 f, X2 C! U; i; I8 G
第8章 字符集 1219 ~# ?4 M+ g v# c! c* R
5 }* Y5 E* }) O( C7 _+ z8.1 字符集概述 1214 I3 Y5 M) M7 o3 q" \
% i& ~4 ^0 b1 O" m: n8.2 Unicode简述 121
, [1 f& n3 o/ V* Y. _6 k5 Y8 S* c: Z' b# ?& v( `" x( N" r
8.3 汉字及一些常见字符集 123
: Q7 r& ]: i j: i9 Z: n! w% ^" s; I7 c6 R
8.4 怎样选择合适的字符集 124
( X/ Y ?" y( s- x1 z% F! r% K5 z. ?
8.5 MySQL支持的字符集简介 1250 {2 } b; n( U+ y* Z
. t3 {* s8 O6 {6 ]9 ^. F) ^5 h( C
8.6 MySQL字符集的设置 126
2 F) n: N3 t1 D9 p k% S4 a8 X& e/ P
8.6.1 服务器字符集和排序规则 126
5 x s9 a' T" g; I% S2 j- Q7 x6 e3 f, Y0 _. E6 M; g# ?1 F
8.6.2 数据库字符集和排序规则 127- w* I k( _ V0 [$ S9 A
' }( e# {8 Y. R& k" ?; ?8.6.3 表字符集和排序规则 1276 x* Y3 U3 v) G/ f
0 O9 d I% |+ k2 x8.6.4 列字符集和排序规则 128
; C0 \7 r4 o5 P J+ z4 z: t# c0 `, p' H
8.6.5 连接字符集和排序规则 128& g1 o$ r+ m, ~; |
5 k% Z7 P# F" C3 R# H% t9 X. h; v
8.7 字符集的修改步骤 129
7 [! X" x: K, @5 N5 J( E
( i1 H9 u1 A8 J1 f, Q8.8 小结 129
- z. L6 `5 ?! x" X) S8 R3 L- C, P' L
第9章 索引的设计和使用 130, a! G8 y [% A8 L. j
$ x4 S" E( `/ X' G9.1 索引概述 130! Z' \9 ^# p- N
: }, m+ t; _2 C% g/ e: _
9.2 设计索引的原则 131- Y9 z2 ?: r4 l; ~$ g
& C" T3 C) U+ ?% |# l* F
9.3 索引设计的误区 132* T9 `# d/ H9 ]# s. p
6 V, d! Z# ?+ K8 z% y( q; _3 P9.4 索引设计的一般步骤 132
1 i, ^" B6 t2 e2 H/ @$ ?0 U# a, h* @, K$ {3 e" |/ c+ P/ d5 @
9.5 BTREE索引与HASH索引 133; F# u% C8 U5 |$ i
- ~. f$ F8 s% A% o9.6 索引在MySQL 8.0中的改进 134- c( z& E( [0 B. H9 e
, Q( p9 @' @ h V$ v
9.6.1 不可见索引 134
6 b" a% {7 b: Q2 V; ?4 V
; x' }# ]( s1 F# x0 t* z Y9.6.2 倒序索引 135$ ^( i k4 t$ t$ E
' j) L$ H. O$ x7 J' a6 u+ [9.7 小结 136
* r9 K. t* D7 k! F
$ u# l' O- N3 K: n+ @第 10章 开发常用数据库对象 1379 f) p; _4 b) m; C
- |! `; T& A6 |/ `10.1 视图 137
/ S1 i0 D2 c/ O/ Y
1 q4 m7 b; r4 P- I- {+ S) n10.1.1 什么是视图 137
5 m5 J" ~& T' ~2 u0 g& C
3 Z! L8 Z' n% Z10.1.2 视图操作 137
8 {3 L, o: ^1 c6 {2 A! t0 A5 c- G" T' }0 t( W, C
10.1.3 创建或者修改视图 137
1 S3 f$ f( w4 S$ t" t5 v1 t z7 k
0 Q |9 O @; k1 b6 k, @5 g; R10.1.4 删除视图 139
/ ?2 k* U: v8 G1 M6 G- _& Q
6 m- b) [5 T4 {. M: c ~10.1.5 查看视图 139' ?& h+ P# w. P# {
! K$ E( T7 k5 j1 S! m7 R
10.2 存储过程和函数 140
- D' v7 {5 h* j+ v2 p% W# b. u, c7 q- G$ e
10.2.1 什么是存储过程和函数 141
# e* }& u5 k, e* n* z5 L: F9 l' @ x6 X$ X5 L) x* V; N( u
10.2.2 存储过程和函数的相关操作 141
1 q7 G) j0 v3 y% {2 D% @
6 J; g a+ c! ?% X10.2.3 创建、修改存储过程或者函数 141
2 \+ J* K% j1 f' ?" y" Z6 \
) G& \. W# I# [6 Y9 p+ T# R3 v10.2.4 删除存储过程或者函数 1441 V: _) y- z5 X" M5 O `
, n+ X1 D6 q' h+ ~
10.2.5 查看存储过程或者函数 144( G' q( i3 s/ m9 Y, n
: |& G5 Z$ ^2 p: F( a( @" Y3 H
10.2.6 变量的使用 1463 l4 y6 n, G/ a# Z
% `6 L" o' H! Q. {9 U0 { ` s10.2.7 定义条件和处理 146" L6 Q1 b+ n- F+ H$ E" j( q
6 f0 H3 ?* t# h" {1 F5 P
10.2.8 光标的使用 148
2 N5 F6 _8 n3 R: U4 q. m2 |. @& z8 h1 }
10.2.9 流程控制 149# E; W' E7 P# O: N4 b( y" C
1 s$ M+ j. l6 Y! B
10.2.10 事件调度器 152. a7 i& M$ U, o' z- [
: W1 G/ `3 J1 K
10.3 触发器 1551 l" E4 U+ i- m) Q$ R
' l" [( P$ [8 F
10.3.1 创建触发器 155
; M2 b [- H! N) v3 x* K2 G- P
. i* O3 S. s, Y10.3.2 删除触发器 157
# B& F1 `% E" T A0 E& {% j- _2 x6 N; C4 B3 p
10.3.3 查看触发器 1572 ~' M- c7 R X$ R
" Q0 n( s6 r3 K
10.3.4 触发器的使用 158
. c6 \2 J& N6 D" a7 K( L0 T- _/ p
# t' }$ y" _5 S" D10.4 小结 159- s1 \( e' M: [5 g5 C6 O
' J+ n7 B% N/ u9 Z
第 11章 事务控制和锁定语句 160! g+ u! E& u8 A5 j5 I% }/ L( e0 E
! r' g- [+ R) `& k! \" A11.1 LOCK TABLES和UNLOCK TABLES 160
3 E' P0 F) S0 h5 @, v) X/ b; l( J2 c1 p( L# ~% U
11.2 事务控制 161% U! ^; C# D: h; \$ H4 i
+ b4 Y1 p. y$ |: z, S. I: F$ X2 [
11.3 分布式事务的使用 166
9 N8 l$ ?" h* U0 O/ L/ |) l
7 j" g8 w- Z& d4 W9 m. O& _" B, |11.3.1 分布式事务的原理 166# l/ V0 d. P0 l( s5 j) m u
5 Z: C. S" x( S% e11.3.2 分布式事务的语法 166
8 _# y& Q9 n7 c5 D: B! E) f/ R9 \- x+ P: g! U1 y. Q& @/ ]
11.3.3 存在的问题 168
# V: t5 p, @/ W. i' T0 `5 V. @& M* ?2 D/ F* \
11.4 小结 171; o2 M6 N* W, z( {* P8 R: _
) J6 k# V; ^! U4 f0 P
第 12章 SQL中的安全问题 1729 c2 i9 {1 e0 C! B5 N/ }' u
# E6 t2 d7 A: V, J- B
12.1 SQL注入简介 172( Z) X/ b/ F" L# e# D
, J [2 c* @- C: C12.2 应用开发中可以采取的应对措施 173( L( U, b* }) P) `+ A; E
G1 K5 o' g4 U8 R( Z' C6 _5 u9 z% w+ n12.2.1 PrepareStatement+Bind-Variable 173$ x9 M2 j) n+ q) W# V+ p
1 K J9 b% a6 E" G
12.2.2 使用应用程序提供的转换函数 174* h# t7 K! E2 q- P! I" P# ]: ~0 x
! K7 ^* t0 H; r0 Q7 W$ @
12.2.3 自己定义函数进行校验 1749 }/ J6 z- p/ W9 o! n ~
7 X1 \/ J, ^ ]0 a J) }; {
12.3 小结 175+ {) v+ b1 q" Q0 b. ]1 p
t* u( Y. a, z6 ?: [* ~7 t
第 13章 SQL Mode及相关问题 1766 X7 ~4 Z( E L( K$ @
M. G+ z+ _7 U. S& X
13.1 MySQL SQL Mode简介 1769 n W6 c' V4 h: g2 K; w/ e+ z
7 ~5 V2 P! d' V5 c0 \
13.2 SQL Mode的常见功能 178# E7 x$ T/ d! @8 l( R
( B' E7 W9 v1 X3 X) e13.3 常用的SQL Mode 180
4 a' P9 l' s% i) M2 V( p' G q _2 h: ^# @: ~1 ]/ o
13.4 SQL Mode在迁移中如何使用 1822 U. z6 R& Q0 ]5 S+ q5 l
: ?# K' a3 E% Q1 T* B V* k8 X: s- N13.5 小结 1839 I. u: j1 J( ~% g" M; Q: f+ l
# p" |; W5 R! u0 a8 h1 K
第 14章 MySQL分区 184
; ?( ?/ Z& P1 | o# R) a! c6 |
" G! w! v! O5 y& ]+ Q; y" n9 f% T14.1 分区概述 1848 x5 ~/ s6 e6 m, X8 j; e. I
8 q7 N) `0 C7 C# B* D14.2 分区类型 1854 U1 n, B. L' E8 ?
& ]/ u( |1 D" d/ L14.2.1 RANGE分区 1871 J* h' \ }% Q
' E( I0 U/ C: K1 V {: l8 s$ R14.2.2 LIST 分区 188
+ \* O/ t0 @- A# L' z4 ^ \5 R+ D2 K* j0 w/ F6 N& I
14.2.3 COLUMNS 分区 189" a. B% q' P$ D# V, a
) P. `! b% Y; L14.2.4 HASH分区 192) N) L- }: d2 c& U
0 L% n: n {, Z) N* k
14.2.5 KEY分区 195
, W1 Q9 O8 r: ?& C- X, o; e* i2 S+ [: i4 j% l' [+ _, \" y
14.2.6 子分区 196
% b* n n$ u% ]8 a9 m
) M; t# f1 m; Y7 G14.2.7 MySQL分区处理NULL值的方式 197! E# C# \1 M9 ?1 C) T% t" a/ \
. f) f3 `: a: Y7 D; q, G5 _9 q14.3 分区管理 1991 P# E0 p: O1 R; F ^
* }! U' D6 F. H; U7 [14.3.1 RANGE与LIST分区管理 199
$ n! c' S6 g( l+ A8 o% i- s5 \+ i' H. Q3 l
14.3.2 HASH与KEY分区管理 205
' h5 y5 X8 w& ?, _& o1 K$ u/ S
+ P% E0 [! \" H7 \! n/ n2 n14.3.3 交换分区 206
1 ^ y3 V& E0 w2 d0 q
4 c6 V% S- z7 V& x/ m$ E14.4 小结 208- E- D# J' N4 u/ q2 J
, ]2 D. P* r" C8 M& x
第三部分 优化篇
: d: I9 w5 g/ C/ F* E
' s3 V4 [. ^" b1 c/ v$ L- U第 15章 SQL优化 210
0 s2 a8 i# K5 z) w5 a6 V
1 J" w; K5 k$ Z; W15.1 优化SQL语句的一般步骤 2109 [8 E+ e M: s0 c# K5 @
6 T) I$ m/ I. M% }
15.1.1 通过show status命令了解各种SQL的执行频率 210' N, u- |1 \- Y5 p
* ~/ Z9 z+ t+ C( @$ [( A" l& F3 G/ H15.1.2 定位执行效率较低的SQL语句 211& F0 L; q6 R& Q3 c& {
" g3 Y0 U) c9 r/ u# r5 V
15.1.3 通过EXPLAIN分析低效SQL的执行计划 211* f4 D1 r3 U- E9 z4 y! ^( [
: e0 Q3 i" M1 m) V7 `
15.1.4 通过show profile分析SQL 2160 `# {: H! N% R" z1 m8 |( e- Q
* Y& y& ^' Z& `. K15.1.5 通过trace分析优化器如何选择执行计划 219: }2 I) B( q# w0 @* Y- E# A
; N t' U2 U9 Q6 t6 F# X
15.1.6 确定问题并采取相应的优化措施 220
% |* G0 N& W+ v! K2 G. k7 N- x
' f4 c2 i5 p) A/ D7 Q: z. u15.2 索引问题 220
1 }$ R0 n9 T% W( g
) q0 y, r5 j/ }: }' w15.2.1 索引的存储分类 220
3 J4 t6 Z! Y( R( c6 e5 L$ M$ O4 N s$ `7 t
15.2.2 MySQL如何使用索引 222 K. i0 F# ]0 X% L0 A1 |( G
& Y/ K# }1 S r4 |( f( J
15.2.3 查看索引使用情况 231
1 p) C- S: ?) P& Q: P) }; {; |
( P' \8 Y$ @4 _( N, x15.3 两个简单实用的优化方法 2318 p7 |" N3 {& P3 P& l: ^2 L
& X d) W/ e ~8 }15.3.1 定期分析表和检查表 232
+ t- F2 z- i5 P: a- n( c! ~+ ^9 j3 y
15.3.2 定期优化表 233
+ X% J3 }+ A& I5 }! F
7 ^( E* H4 \4 C' t15.4 常用SQL的优化 233! }( ^- e$ c$ W# s; C* m1 s% F0 I
6 j( G0 n) V6 K( E [15.4.1 大批量插入数据 234
* @) g( {5 H) N. V2 T. {- Y! W; f7 j# n
- b1 M3 o9 X( S0 h3 ]15.4.2 优化INSERT语句 2356 e9 G9 F, \" e( U, C* d ~
8 v! m! V2 x: V, m' u
15.4.3 优化ORDER BY语句 235. K! c- l1 d, @5 J' t8 e6 i
0 N7 a2 i ]0 F H) I/ \15.4.4 优化GROUP BY语句 239
3 P% ]. l* k& m* m( l% f. Z3 `2 w% W4 C" ]; i6 F$ k. F
15.4.5 优化JOIN操作 239$ T5 `* ^9 M, j6 l2 Q6 v' U) Y
8 ~8 s) @! W; P- a
15.4.6 优化嵌套查询 243
& b5 k2 _% J1 q4 G+ _; P& G
, n5 Q6 t4 m* k1 G6 ^6 M' x- N15.4.7 MySQL如何优化OR条件 245% e0 H6 z. ]: [ C! {2 e
& g% B% R3 }& _6 j- r' ]0 N2 d9 W
15.4.8 优化分页查询 2460 E2 X7 l0 d# e
- u5 Z0 b. X3 _/ U: c) Z& d) F5 W15.4.9 使用SQL提示 248
7 v4 a% A+ W) f" Q, S
; ~' O3 f9 r$ T2 K. ^15.5 直方图 250' T5 [; f( ]* o# I3 v' G
M; m5 ?6 C3 t: s: F9 l0 ]
15.5.1 什么是直方图 250
' x: K. j" z$ o- [. }& O! t. \* Y) J7 t1 h$ f2 V* {
15.5.2 直方图的分类 251
7 t$ z8 W" n4 U: d3 b& n1 t" @- H: X5 k6 h# t
15.5.3 直方图实例应用 252
$ \4 S+ X. {/ `
& r- ^* j0 e/ f7 j$ M& p0 J15.5.4 直方图小结 256
2 F2 y g$ z" e/ U" V2 y
( S/ T0 @5 Z4 Y! `/ X15.6 使用查询重写 256
! n. i( H& B9 B4 @1 E3 e" B; F; {, N- n4 [4 T$ m3 G$ p' j% b1 W: ?
15.7 常用SQL技巧 259
1 w: J/ q+ a4 q/ \9 K$ q
1 ~) X. z$ ]; r15.7.1 正则表达式的使用 259
) V, t" U& z3 {) @0 O% h8 Z
3 g, G2 U; G$ W! _15.7.2 巧用RAND()提取随机行 261
3 q( V# i4 L: m3 @8 k* T% x* ^
% d" ~* Z& K4 y+ x15.7.3 利用GROUP BY的WITH ROLLUP子句 262% m4 d, r+ a2 W0 K
9 u+ E7 s7 @! Q7 s" u$ W- m15.7.4 用BIT GROUP FUNCTIONS做统计 2636 e$ R) ^' y z
# @; O5 c8 e5 Z% R) l15.7.5 数据库名、表名大小写问题 2654 q" y9 s5 { _: a. j* x
% u! ]1 u4 I/ N( k* O15.7.6 使用外键需要注意的问题 265- q+ v: E$ f6 |9 F
! E/ Y4 p0 Q& H4 M5 e5 B5 D15.8 小结 266: L' Y. J) I9 o( _; C/ F4 N
' b' f8 Q. Q, |+ N3 I. v
第 16章 锁问题 267
+ }& h. F& @: J
0 S6 E/ f7 C+ u16.1 MySQL锁概述 267
8 e) s4 Y. I( b4 \, X4 n( |* l, D
16.2 MyISAM表锁 268
) d' C2 j# s; _$ t$ k& h7 w- C: A4 L3 z2 B" Q5 A
16.2.1 查询表级锁争用情况 268
W0 N/ G% q/ E6 G$ P3 ]! T0 t( ~) {* t! T% |1 d
16.2.2 MySQL表级锁的锁模式 268! h+ C6 N. B1 y6 S
P+ ? X8 f a' {$ T( G: N" Q
16.2.3 如何加表锁 269
1 G( O' Z% A" N6 P! U
* b; D! Y$ @/ {1 \8 v16.2.4 并发插入(Concurrent Inserts) 271
* M; d* p5 X; F3 g E8 E1 ^& ~% Z
2 B2 F7 F; `4 r. i7 o3 S7 \" E16.2.5 MyISAM的锁调度 272 q; {0 t- f5 z4 \+ ~7 l
) B3 d1 L2 k- p4 q' C3 f: j
16.3 InnoDB锁问题 2733 m' _ C# \! c3 g
2 e" h3 u4 ]( A6 R
16.3.1 背景知识 273
; n6 W7 m1 V& B8 I! G
# `6 q8 \5 J/ P* a _$ X6 `16.3.2 获取InnoDB行锁争用情况 2757 i0 v _1 P+ B _( t8 N: ?, u0 K
8 U8 l5 _+ ]0 L6 W' _$ m& w+ @16.3.3 InnoDB的行锁模式及加锁方法 276
! E" D% U, t) o+ L
{7 \/ |. g1 p: V16.3.4 InnoDB行锁实现方式 279
4 U4 c- i: E% i+ i$ B" ~" |2 f/ X5 ~: r+ n0 O$ L' c
16.3.5 Next-Key锁 2831 }/ @" j( h( R+ X' B
; ~7 ?0 r$ Q6 I6 b# Q7 M16.3.6 恢复和复制的需要,对InnoDB锁机制的影响 2842 u" Z; J& f4 P4 g' k
2 a6 N* G1 t$ G2 K9 p
16.3.7 InnoDB在不同隔离级别下的一致性读及锁的差异 287/ T% \" \0 ^9 g" h6 s/ y" R% z; `
2 X' A2 X( T: r
16.3.8 什么时候使用表锁 288
1 d4 j/ L, y/ t8 N+ z8 n; h. |
' L) m- x/ @/ E! [2 h$ r16.3.9 关于死锁 289
. e: O7 M9 X7 v3 _+ h6 i
a @) P# M1 u: N$ {- i' D Z16.4 小结 294
; c3 B. b; d& n9 Q6 ?, k" ?4 ? h* f. X3 b, L; [* c% z
第 17章 优化MySQL Server 2962 O" i8 q! U9 h: f4 s& a6 o
4 ?$ }& ~9 h, O! A4 B5 A; M17.1 MySQL体系结构概览 296
+ [; g5 `; G# V, u/ m, l- r, E# ?. M! O/ }
17.2 MySQL内存管理及优化 298
9 Y% e( Z; A8 A6 p$ d
* _$ D d8 Y' p* s- s17.2.1 内存优化原则 298
8 J. E( d" Z# {( m; J, v/ o& _7 ]
17.2.2 MyISAM内存优化 298
# g9 e' v5 V8 G0 `
* ]+ T7 n6 Z( W0 i4 v17.2.3 InnoDB内存优化 301
+ `' N' A. T2 u7 p- @5 p, H3 T* B7 w5 ]- J N8 Y; }3 y2 ^3 k( q
17.2.4 调整用户服务线程排序缓存区 305
4 f+ l4 Y2 \6 g4 }; f- [+ A$ @6 n7 H# w% [: s! ~5 d0 R3 `
17.3 InnoDB log机制及优化 305
( G# x( k2 b3 o5 F) d4 e- ]5 o2 K. k( S# e; Z- A$ K# X
17.3.1 InnoDB重做日志 305
5 C, k# [# y8 U& T o* ?' |
0 B3 g3 l4 q, i17.3.2 innodb_flush_log_at_trx_commit的设置 306
5 o" G) `- s) P( c0 I% b" e; @7 l: O# Z+ f; r& `
17.3.3 设置log file size,控制检查点 307
& I5 x8 A4 F+ l {" E! D; N0 n4 y) W" H8 c3 c* }3 x
17.3.4 调整innodb_log_buffer_size 308
6 q) M' T* u4 G% l+ \* O3 P
, N" n% W. y- C8 C. \$ O% t17.4 调整MySQL并发相关的参数 308
8 m% g7 J0 i0 Z' z8 h/ ?: Z, d6 y
c Y8 D8 w" x4 a9 K# A: P17.4.1 调整max_connections,提高并发连接 308: q# C6 ]7 J" ?9 k
A0 p) z0 P/ d0 L1 a( V8 C) l
17.4.2 调整back_log 309+ d% r2 [3 H3 v) K7 @5 R
- c% t- t, L+ H# u D5 P0 W# O17.4.3 调整table_open_cache 309* z2 k& B* E3 M9 A1 p% ]
" ]) i8 Y- y( ~17.4.4 调整thread_cache_size 309
$ y! ]% h& _/ E2 J% h4 t) l
% ]9 p/ u6 S2 j1 g7 Z' n! P( u17.4.5 innodb_lock_wait_timeout的设置 3092 W8 g$ ^* P3 k; O
. R/ H/ T, q5 N7 n8 r+ G17.5 持久化全局变量 309- S' h' r9 ?4 L3 y
3 ~9 `. o# U3 S( G4 ^( p2 z17.6 使用资源组 310
: F. o( F; M3 m* N; N9 o7 s
8 o, K; q) V- _% ]6 X- A# y( K17.7 小结 312
; g9 I1 V- e% Y. A9 J( y* Z6 V! R
第 18章 磁盘I/O问题 3132 h- X5 h. h6 i% }5 [
& W% X4 _1 d- }7 a% T/ X18.1 使用固态硬盘 313. i- Z6 o9 o7 G( h' m' M
6 `2 S7 l6 _+ c( B
18.2 使用磁盘阵列 314% Q5 t5 c; I# p* D9 g/ M0 L% u
4 R# L9 t2 w- j; `5 ]
18.2.1 常见RAID级别及其特性 314
: g6 N6 l5 S( B' l7 } ]4 K% C
5 V- h" E' _2 s+ u& f18.2.2 如何选择RAID级别 315
0 N8 c9 ` p5 n
$ M. s+ y7 E- i9 C- S" H18.3 虚拟文件卷或软RAID 3154 E P0 Q: A) X0 \& A% [
F0 F( Y7 ^' {& F18.4 使用Symbolic Links分布I/O 315. X! I1 \& c* t. Y" m
8 e3 i! @: S" \- B% \
18.5 禁止操作系统更新文件的atime属性 316+ E ~/ [2 [# \5 n4 }6 m
# _6 Y* P/ [% O- Z& r: e- G9 K18.6 调整I/O调度算法 316
: N' b: \+ @' Z7 E2 }" ~
& D, `5 t5 p( W7 e2 I3 }( Q18.7 RAID卡电池充放电问题 318
( w$ w7 ]8 |% n; V4 }; c; L# |9 U2 f4 M$ e) w/ v' K' b! Q2 D
18.7.1 什么是RAID卡电池充放电 318
$ B& L- M3 ~$ A$ [ C5 O
' _$ o6 p& U+ v& P4 O1 ?- z18.7.2 RAID卡缓存策略 319
. s, H1 D5 A+ K( N/ g+ O2 y* l x& G4 X+ `/ w$ z
18.7.3 如何应对RAID卡电池充放电带来的I/O性能波动 3218 _1 }7 Q2 U8 r+ X$ x
" V8 ]7 q- S) o% g
18.8 NUMA架构优化 322
. ^2 d6 F2 l) \1 n& k, m5 _3 N: |, _
" {; Y& I) m+ c, L0 {. B18.9 小结 325( B* D) T7 g+ Y% U& B, M9 q2 e
3 P+ E+ @+ ~0 u. w" k0 x
第 19章 应用优化 326
0 {' D2 l; l2 D$ j+ r, c
3 z. G$ P# N# d/ r* a( e# A19.1 优化数据表的设计 326; q' \$ S8 U1 B0 @! a a6 k
2 f3 G4 k1 |. g7 i. V& s19.1.1 优化表的数据类型 326* @& b4 F5 m( w* W! t% W& i
# g j: z+ I: `* O |1 K19.1.2 通过拆分提高表的访问效率 3282 b) T! d! r9 C* D2 c9 Q8 d, J
3 R! k8 p2 b2 A# U% [" z, [7 F, z
19.1.3 逆规范化 329* J$ t# ~: i8 R0 N& W$ l. c
1 w `4 z4 e5 O19.2 数据库应用优化 330
# a/ D! Z% Q* Z' F6 b
* Q/ V8 P2 K* M. @% {8 p) C8 L19.2.1 使用连接池 330
! I+ ~# R& \4 _' d* W. G
: M" M7 ^9 b4 G19.2.2 减少对MySQL的访问 3309 L* ~) q! Z; B: |( \
) k% Q X* P2 \0 [/ W- B$ ?: l( P
19.2.3 负载均衡 3310 c8 }8 n. H% [8 i
- h8 g* G( m3 o; a19.3 小结 331/ C' J# h% x7 ^
5 D8 D3 y( m1 o- R1 ~' g! y第 20章 PS/SYS数据库 3322 p7 B8 R a0 }8 @* \0 A
0 y$ N* F I9 f8 J5 w
20.1 Performance Schema库 332
4 _0 J1 e6 r, t: M, Q/ p( M( @6 O6 C5 T9 G7 m
20.1.1 如何开启PS库 332
$ C/ @1 l1 @/ W4 ]: X- |9 G+ t& M7 f: \8 L$ t9 `. v' s
20.1.2 PS库的表 333
! s$ K" D' n. v; r* I& Y8 B9 n1 }2 ]( b' c {( A
20.2 SYS 库 335
( U3 l' ^7 \( I" \5 w& Z& a- Z" Z6 _. V* y' a" h
20.2.1 SYS库的对象 335+ j# u& H- I) T( k: U8 B2 g% }& M
$ j p- j: A- n+ G6 l7 t- u
20.2.2 SYS对象的实际应用 3367 s2 R" J* @. W! o
, l6 \& g3 G8 _; n5 r; @# M20.3 小结 340
4 \$ {: d* L9 U; e% h5 m) u+ a: |( J0 T* X8 R# ?
第 21章 故障诊断 341
) ~6 r" t6 I0 U& A
. M( V; ]; }, S6 h( u3 S( V21.1 故障诊断和处理的原则 341- N) }' ]0 b0 ]4 x k
, Z# I( w8 e$ D c4 a$ `; y2 H
21.2 故障处理一般流程 343. W! m$ `- }# j- ], V3 K8 ~
% Y; h) O# Y" M$ t. K
21.2.1 故障发现 343# e F6 G* ~# h7 Z& ?
; b: l' k- R+ K1 |0 X
21.2.2 故障定位 345
- I* r3 ]# a! Y+ Q* j$ j; ], k0 X$ i/ Z" s3 a( N9 W3 U
21.2.3 故障解决 346
, D5 @/ ^0 q+ k, |2 w! g3 a; n0 Z* M$ p( [
21.3 典型故障案例 349
4 P6 P# ]) }! {7 {
. V/ G" Q6 s" Q+ x9 c21.3.1 案例1 349- ~% u9 @/ \$ n& e6 O
: z8 a. N. W+ k: c
21.3.2 案例2 353
0 F+ i% L8 `$ x. b) r
0 ^' @* i& }+ ^- r4 l8 g21.4 小结 3565 c8 {( y. N% r+ @/ ^
* A$ H$ u: u0 o j- z5 e) r- K
第四部分 管理维护篇
/ Q. _0 R! Q% j7 y7 P8 ]- Y2 ^# o6 n. F
第 22章 MySQL高级安装和升级 358: x. N6 i( F0 d6 F v5 H. D
) S/ P J/ j4 U$ ?' Z5 `4 ]* b
22.1 Linux/UNIX平台下的安装 358
! b$ K5 h+ Q7 H
5 [& g: I+ D4 |5 [2 m- s22.1.1 安装包比较 3580 c+ n# n" \7 e# K+ f8 a
9 Z2 v/ `7 W8 {0 p# b22.1.2 安装二进制包 359
1 F' Q1 C s+ ]# B0 E! N: u( ]
; K9 r! w7 I5 ]$ O- E- r' y22.1.3 安装源码包 359
$ ~3 G. z3 n6 d9 r8 Z2 c) c+ L8 `7 W/ C V. y+ W
22.1.4 参数设置方法 360- A. l# U& g: [5 z( }6 Q
& @3 `1 b! L6 j% o! w M% h* V; h
22.2 升级MySQL 361# k; O+ {% {( ]7 i- W
" S' H6 @4 }% }. V M- z
22.3 小结 3637 { w" R% s( T5 @
0 ?. Z H( }) f
第 23章 MySQL中的常用工具 3647 |) J5 Z4 T7 Z7 R% Y' d
! C: q: H- g( m6 }: ~23.1 MySQL官方工具 364
& W! G" t; k& {) p* G
& J$ y9 A! T7 X23.1.1 mysql(客户端连接工具) 364$ C1 g+ d2 A! ?2 G* M2 J
( G0 N" b7 s0 }3 R$ i
23.1.2 mysqladmin(MySQL管理工具) 371
$ w! B- A; J2 g8 ^
) {9 m% o! L ^1 p0 l# C23.1.3 mysqlbinlog(日志管理工具) 371" o- G$ O8 L& v& J* @# A
7 f9 e/ w; n) m1 C$ T6 p9 U/ M
23.1.4 mysqlcheck(表维护工具) 378
) ~! U9 v V% u8 `1 O5 \ z
* W, O" y' ?7 R9 ]6 D* q23.1.5 mysqldump(数据导出工具) 380
! s m) _3 ~$ U( u; ^0 z6 `! [
& Z* t7 L! ?# `: h7 x& S2 t6 X' r23.1.6 mysqlpump(并行的数据导出工具) 384
- Y& X" A, s' }0 d5 H; l1 [1 U; g' D6 h$ z7 j) k
23.1.7 mysqlimport(数据导入工具) 385! w/ i, i* V) @$ a0 a
& p4 u4 w, R) \3 e, b1 \ M" Y23.1.8 mysqlshow(数据库对象查看工具) 385, H9 I3 X0 o. H5 ]* {" s% d. V
! L% C* ]( F A2 g1 j! `
23.1.9 perror(错误代码查看工具) 387
8 k9 ]* q- x: i3 ~- L- \: N$ H2 o, Q" _
23.1.10 MySQL Shell 387
Y$ N% F: ^: R6 w: r/ O+ x' u) g- \5 L. |
23.2 Percona工具包 390
7 h4 V7 D# S; B, Y+ n+ B9 J" ?6 j' K; u7 Q2 q4 w- v; b
23.2.1 pt-archiver(数据归档工具) 391
5 j3 F/ D/ D. U/ l5 v- i) G2 |) d/ K2 E4 }6 ~2 U8 S
23.2.2 pt-config-diff(参数对比工具) 3939 J/ u' r! ~! f; h4 B' Q
# H, b* U5 s) w' r) |, z& ~7 T
23.2.3 pt-duplicate-key-checker(检查冗余索引工具) 3946 Z4 w. `# \& _, \8 _: B/ H
0 ?9 q# }* Y6 ^8 [
23.2.4 pt-find(查找工具) 3952 @: X; n+ F' \3 k8 T% P& I1 L
' \: h1 C& d9 Z+ T3 J' d
23.2.5 pt-heartbeat(监控主从延迟工具) 395
0 n. U, r. _1 @: L' j2 u# `
8 f% n& \9 ]' [* b5 b; X23.2.6 pt-kill(杀死会话工具) 397
' T: p `3 W: A2 w9 K
$ c( i$ G( \: }: A; g& y8 K1 L) }23.2.7 pt-online-schema-change(在线修改表结构工具) 397
+ L. q7 D$ Q) V: k0 G+ W
4 X/ A- F1 N8 Y7 Q( Z23.2.8 pt-query-digest(SQL分析工具) 399
X0 S# R9 e( N9 w
1 _ q* S$ i$ D( k7 Y2 i6 a23.2.9 pt-table-checksum(数据检验工具) 401& l1 @, O0 p, }8 X; S
8 Z, b# A4 t) I; j8 e9 Y3 S23.2.10 pt-table-sync(数据同步工具) 4025 _# g" u5 [4 P3 T5 e+ D) ~
8 K M, I# ~/ q23.3 小结 4037 O4 s9 H1 U7 k' ?! T+ w' I: h
. p8 Y% P. _6 @ D& y6 |第 24章 MySQL日志 404
" A/ a1 K* y6 P" N* O/ A0 o) K6 @; Y, C b% K7 n7 v' h) p
24.1 错误日志 404( m) t' e9 ~; ` m2 p* T
( `+ ], i/ M; Y- l24.2 二进制日志 405- Y6 A% A( v, F( k
8 m! U0 Z1 [7 A4 ?5 t9 C* J7 Q
24.2.1 日志的位置和格式 405
1 K9 ?' X1 v: N0 |' L D. ~- m! a" `) z$ X
24.2.2 日志的读取 406
* r2 v( K, F. A- t+ T3 G
; |$ Q+ j& {4 C7 f24.2.3 日志的删除 4072 s( a T1 ]9 q+ V
! u) s4 c" x6 q- Z
24.2.4 日志的事件 411 n: B1 y2 V4 Z$ _7 ]
" v$ t) ?% M2 i9 ] N
24.2.5 日志闪回 412! _0 V+ r0 U; e8 t7 \! f
, R" x2 U A2 t4 |4 ^+ W1 P; N24.3 查询日志 4154 N3 R, [) S1 t' S y
. x6 \* ] P% s8 ]) k8 H24.3.1 日志的位置和格式 415$ f. h! {, d! [2 P6 @" }' Z, e
& W: a! q5 V+ I# `6 K4 S U$ n
24.3.2 日志的读取 416
- g8 i2 i& n$ M/ T) d2 Q9 C) ~5 ~+ f# C! p+ M x
24.4 慢查询日志 416$ J& K6 k% @! D$ Y" b# E- T
- v" T6 r* E7 K, C$ m24.4.1 文件位置和格式 416
. F* W- w: G4 i: o% A2 E3 _+ m- W7 m0 `4 S" n7 _4 m; ]
24.4.2 日志的读取 417
1 S8 Q% {+ _: Z: h9 r% b. |; h' @- ^- [, d3 n2 o- o
24.4.3 Anemometer简介 419
; X! [! z/ }3 d, X0 F
9 ?! P! Z/ s% v% t& i( g0 l24.5 小结 421
$ j O; k. _: b0 u) y4 q9 e: F" r& R
第 25章 备份与恢复 422
' f+ i+ Z Q/ } f% o# h* O4 c& Q" X9 g& ]# z
25.1 备份/恢复策略 422. M; I9 q# ^2 p; l# |% M2 E7 S2 ~
8 {: `$ r5 Z3 ~3 l' n3 n
25.2 逻辑备份和恢复 422
6 H; {+ I3 D/ G- G
3 z' z$ b' u0 n2 [3 I1 G- F: l25.2.1 备份 4238 T7 n& l2 P; R1 e# B c# L! \ R
4 ]* c$ D6 B7 Y6 |6 P. U S25.2.2 完全恢复 425
& y$ Q9 j0 Q, Q+ z% g; r3 o) U2 ]) K
25.2.3 基于时间点恢复 427
& y e) I: _4 t7 ?9 b: I Y: x& k
) Y! b; N; b( c' F& ?' N5 p25.2.4 基于位置恢复 427
9 @& @4 z, `; Q3 E2 y5 `0 W. j7 Y H" t& |+ }
25.2.5 并行恢复 427
' w* k3 H9 F! T: P! p# T5 T
D2 K+ B4 z4 T% \, {; [: A25.3 物理备份和恢复 428
* u5 e1 S& v9 c3 K4 ?7 ^/ F9 n/ |# |
& E M8 U% V- Y) D2 b3 K, V( O# P1 [25.3.1 冷备份和热备份 428, y8 |8 N( n1 }- G
6 t+ k( J* P4 B- I, F0 H t% `
25.3.2 MyISAM存储引擎的热备份 429
% K( J- d' A. S" c7 Z+ N5 {8 {
% q: A L0 m8 L! M: k4 D25.3.3 InnoDB存储引擎的热备份 429+ U- ~3 s# {, h$ y8 o- L2 w
6 q5 y. M, X3 p# ^+ I25.4 表的导入和导出 438
" Q4 l$ z3 c! L' D$ Y8 B6 {
3 C; |! d) D u- R+ Z5 V25.4.1 导出 438
l# }5 X% u1 v; r5 ^5 Q0 H, c/ E4 h' P# g' F" R( \3 B
25.4.2 导入 442% q- b, p7 | P8 F. `( @
) p1 ]" a# U+ A6 o
25.5 小结 445
8 h) }6 c; d+ x& L! \0 v/ Z$ s) I# m" G
第 26章 MySQL权限与安全 446 z3 k4 v, O) a
8 k) {& L5 U x, ^! b26.1 MySQL权限管理 4461 ^9 \6 {( F* z6 u' T' ~: ?9 V2 C: h
: F6 K8 l/ E7 x) o+ ~- o X26.1.1 权限系统的工作原理 446
6 Y$ r% y8 E2 G7 N, `* n
* |* B3 r9 s/ X26.1.2 权限表的存取 4467 Y4 Y) |( w5 i$ ^1 B" y& M
, _/ J0 n( n0 `& I! f& k1 y% A% o26.1.3 账号管理 449
% v4 Y) d8 `- c7 {5 j6 i8 }
! g4 R9 q! @9 X9 U26.2 MySQL安全问题 461; U% q& D4 f+ }- ? E$ H, T
# K6 g; W; {$ H9 ^& V
26.2.1 操作系统相关的安全问题 4615 _2 v" n# b; T1 O
( d0 W: Y0 ?/ Z8 R
26.2.2 数据库相关的安全问题 463& Y* m8 Z. W, E1 A8 ]) q
( U) [% Y* ~* h0 E26.3 其他安全设置选项 4710 Q% s- g3 ^; U6 q; T
! v# a3 `. ^0 d! h1 _/ }/ m; c g26.3.1 密码插件 471+ x' T! p. Z1 H7 x
# Y5 R4 [! l3 c2 L1 q
26.3.2 safe-user-create 4729 r/ V0 R8 @0 w2 q
! q9 b' L! z+ k7 O% {1 L
26.3.3 表空间加密 4731 K! |9 L# [1 t% H- j8 l Z! h2 }
9 d( W a: c3 i8 S
26.3.4 skip-grant-tables 474' Y) G( u) ]+ @' Q, l0 T
: X8 H' b# s6 }6 p0 {. Y; i
26.3.5 skip-networking 4745 u5 _) g& L# x" r
2 f! D( h* y9 P( |26.3.6 skip-show-database 475
$ f! V, l \5 k f B% q) k5 {4 a" T# X" A6 e
26.4 小结 475
7 p! ~ V) A6 }8 d/ n3 `( c6 z
7 }; o: F. A U9 T; I: F第 27章 MySQL监控 476
% N% ]7 e1 g# f) C3 @# _; D4 F; Z; j5 ^4 o- E
27.1 如何选择一个监控方案 476/ _, q$ z/ E" r. r7 _
5 H+ h8 j( @5 @. x4 _% `& q5 c( }27.1.1 选择何种监控方式 476
6 y+ D0 h- t1 M4 ~
7 C' S- z& `1 a9 I27.1.2 如何选择适合自己的监控工具 477
$ [: Q9 j3 w$ l0 Y( _* P, |7 ^ Q+ l
27.2 常用的网络监控工具 477
( p: R' @5 G1 ~
; L0 V% T! T1 I; \) `7 I/ x27.2.1 Open-Falcon简介 4776 Z6 U5 h/ m2 y& T: T
/ Q( ]* `# w( q( r( Q; \7 w27.2.2 Nagios简介 479
* g4 t4 I& |* g# I5 R) g
- Y0 ^0 P6 \" @$ x# u27.2.3 Zabbix简介 480; W" c" z- b: E N9 P# g5 k
9 s* b1 X5 F0 x# ~, `
27.2.4 几种常见开源软件比较 481
4 x$ i1 x4 I9 m U8 }& N4 @( B0 C+ @
( j, c0 l$ } B4 k6 ?( m; W/ K27.3 Zabbix 部署 481' K, m* w+ k; W! W9 S
+ p2 c W4 y* k0 Y+ S3 F27.3.1 Zabbix Server软件安装 482' u/ }4 R; k0 y/ Q# ~. }
3 _3 \) m& W7 J: l
27.3.2 Zabbix Server配置与启动 482. \) ]$ ?7 z* }3 {/ h$ n
7 P# g }: h( q27.3.3 配置Zabbix Web服务端 483
% m b T- I, q1 W/ X- {9 k- a2 x( r" t+ s5 w' |2 K/ B
27.3.4 Zabbix Agent安装和配置 485
' {" X8 p' R8 d; }( x1 `. x$ [5 U- e# h- F4 \
27.3.5 PMP插件介绍和部署 486: u; U/ ~. N; o5 L" v, X9 |
$ g4 i* }4 X, \: H: m
27.3.6 Zabbix Web端操作 489
! q+ p5 B* i( Q2 e; `# X/ L
1 L8 {. v. e6 V27.4 性能医生orzdba 491
: u% `2 g+ i6 m
8 `! j3 b# N$ }$ e27.4.1 orzdba安装 491( ~8 U0 p3 D' x0 A0 ~' N
- \4 K) [0 Z% N5 ^. E7 ~4 M27.4.2 orzdba使用 492
% |% n" C/ X2 ^8 ^4 D% d) |2 p. N" H q9 |, I
27.5 小结 492. P$ \& T7 h+ [& U+ g( B
( ~; Q/ D" a( w1 s
第 28章 MySQL常见问题和应用技巧 493
* ?( i) t0 V+ a5 M7 `
9 p- f+ d4 D2 q9 w" F, P7 H28.1 忘记MySQL的root密码 493
4 b+ K Y0 O& q8 U Y+ X' R9 R- y% \0 ^4 n% B! U
28.2 数据目录磁盘空间不足的问题 494$ m# y) C9 o {/ w) y% R
% r2 U# V/ t0 L* O28.3 mysql.sock丢失后如何连接数据库 495' I3 ^! P8 T: b" m8 D& V( d& v6 h7 b
$ j: D: |9 U2 G& ^0 t0 @28.4 从mysqldump文件抽取需要恢复的表 496- C; G# `8 r4 O3 Z
& I+ _3 G7 T! b- l! l& |28.5 使用innobackupex备份恢复单表 497) V5 U% E/ K1 ^ K& [
/ d: U. \. R! H U5 F& Y; M0 z28.6 分析BINLOG,找出写的热点表 498( e Y' ^. |7 c/ @2 b' i
3 E5 E# U" c9 Z& q. e3 t$ [
28.7 在线DDL 499
- h6 S$ B' d, G3 a6 \) |& ? F# g7 D4 e8 x/ [1 g% Q9 K% J* m
28.8 小结 5024 e5 S% r" N7 m$ ^0 t: v' a8 `
4 B8 C1 I" R5 i' e* u- l/ }5 W
第 29章 自动化运维系统的开发 503& O6 o( q, y* d
/ G" L- g" ?; C1 k' b6 p& k
29.1 MySQL自动化运维背景 503' Z" \; j+ C9 g3 k' J: ~ l
, x( g: A- F5 ?) G5 D29.2 CMDB系统搭建 504" t1 `3 Z- r/ f* C
. K7 A/ b0 ^" Z
29.2.1 CMDB数据库 5045 s9 D6 h7 Q7 d0 R
9 p9 f: o& j" E: r29.2.2 批量管理系统 505
! \& ]0 P2 g0 ^5 T3 W: s Q. q6 `% d4 H
29.2.3 后台API 511+ b- e+ y# m% I7 G
8 t9 |* }: L* w; O
29.3 任务调度系统 515( R; d! Q( Y& J6 a# }3 Q
& e! [) D/ O5 E- B
29.3.1 Celery安装 515
2 I% u. L+ n+ d* M
c! X7 c- N5 c8 S* L; g* t9 E( v29.3.2 Celery任务部署 516
/ h/ g' H _" n! `. X2 B j; ~, R2 t) V% e4 {
29.3.3 Flower监控 518
! @: |& N7 z: q% j# q/ }/ J2 _6 Y& N" l
29.4 客户端搭建 519
# v/ q/ `, ]4 Q, E" ^; z
( @3 G9 u% d# x r) e* H29.4.1 Vue.js简介 519! z7 w6 l% p; W9 z9 j6 G' ^( m, a
0 Q+ }( h# q' d5 Q
29.4.2 Vue项目搭建 520
8 f- ~ {$ A \- n4 M4 n) z
6 Z- L, ]( A# o29.5 自动化运维平台实战 525
2 E! u" T1 c( _5 k
. |) ~) ?( S+ _1 G+ H5 G29.5.1 搭建CMDB 525( Z2 [/ L% ^/ R
" P& H3 K5 r& P( V2 h& s
29.5.2 搭建任务调度平台 528
8 Y! ~ L2 s% D! |
$ x3 J/ G# a7 Y* X29.5.3 搭建客户端 529
: @; v' `7 Q) I1 c8 P( M$ e- n2 e) Q0 X, T; k) i, u, y8 ]
29.5.4 项目演示 532$ C3 A- V- T4 l. O1 k! P( v
. v3 ~9 B6 T+ E- F u29.6 小结 532
3 l) w+ c" S7 f4 c& o
; g1 @7 I6 [2 `6 ^8 ?! F1 J第五部分 架构篇( y! B. {* `. Y
3 D. d3 C7 y( n, ?% [4 g ^
第30章 MySQL复制 5349 t' ^) K9 I3 h
, r. S6 x+ K* ?30.1 复制概述 534
3 ~$ @/ {' g* p2 `$ J) o. W! Y# j6 F0 a, F' h; f2 S( n
30.1.1 复制中的各类文件 536# h U* u! P+ g! K6 Z. \; n
+ Y9 ?! m; J d: [# t3 m+ M, L
30.1.2 3种复制方式 537+ T0 A( j4 G' w0 f2 B' p @& P
9 n/ D! \4 J; U y* y0 Y: [30.1.3 复制的4种常见架构 540+ u& I% G( F! v+ C4 _" n9 n7 \
' Q0 _+ S9 e3 W0 I4 M o30.2 复制搭建 5436 |! b, o* v$ x' ?1 Q
# l. t* p, R* N& Z30.2.1 异步复制 543, y" E$ e4 o p+ e6 X$ z: u
/ Y, w# i& h' i* ^$ @30.2.2 多线程复制 547( T' |% L6 b, L0 v, T' k8 h! m
* z% Z* M& n5 n30.2.3 增强半同步复制 553
' P. V' M5 \6 i4 C0 J6 \% U. o2 |! F
30.3 GTID(Global Transaction Identifier) 558# T& L. X& [% O9 f9 K' [
0 g% }8 V" E/ _, t: c
30.3.1 格式与存储 558& D8 i: E. ]) b% u, m
$ p1 X5 U7 c( P
30.3.2 gtid_purged 561
5 |, t- f0 a9 V: @- h* e# s h5 q4 [( D( K: n0 X
30.3.3 复制搭建 5655 B( \, O( Z$ d3 D( ]2 N. k% Q9 f! d% T
- |/ ]5 J3 i! E0 W# G, W0 B
30.3.4 主从切换 571* T- H: ]5 S0 k
8 w8 U. g5 I) d30.3.5 常见问题 572# e* Q( n# _/ v
( C( d2 i% M6 B
30.4 主要复制启动选项 576
/ [! Q. w+ a \. B! o# M; H
: `8 g% C0 J1 g1 `% j) x2 E30.4.1 log-slave-updates 576
( f. @0 q d/ w3 ^" T
! L8 I. B* q4 X6 _7 d* s: D; U' N$ K S30.4.2 read-only/super_read_only 576
; i2 n/ m2 o1 I0 X( e, \7 b. o: r9 ]2 J( V5 Z
30.4.3 指定复制的数据库或者表 577" b. V( A& r: z2 J
2 |; Y7 R' a+ r5 \! I
30.4.4 slave-skip-errors 579
! A7 Z- w# \7 K4 t: f6 U& N9 _1 j
30.5 日常管理维护 5797 ?# [' X! y) {4 |" Y
' s$ F( H/ A& i
30.5.1 查看从库复制状态和进度 579
1 _0 b! e; m3 [( w5 C! f0 H2 ?
$ Q1 Z4 _9 E/ o5 |( P4 s30.5.2 主从复制问题集锦 580
& D2 I+ n+ {. m- G) s+ |% h; o4 |+ O7 O; b5 x @0 z
30.5.3 多主复制时的自增长变量冲突问题 582
9 s& E- `; j4 Y/ r9 Y- O* N7 ]$ u: n% s, H) X5 z) r
30.5.4 如何提高复制的性能 584
l$ O8 f& f$ ]6 Y9 N# o3 z' ]9 ~1 g- {( I. D; v
30.6 小结 588
/ J) @+ R6 G; F5 @" T
0 \+ [2 h5 G+ f第31章 高可用架构 589
+ z- O* Y% X5 z$ n, P
! }+ e; }. S0 i8 F31.1 MHA架构 589
( r4 a# t2 [9 ]: H9 ]5 a. U i% [7 t$ u' a/ a4 T; J
31.1.1 安装部署MHA 591
0 J, p8 k( f( x$ f, t( x' M3 }8 k( q* R7 O' e' r q0 F6 {
31.1.2 应用连接配置 5984 x5 r3 v7 V/ o1 x
$ Y2 y7 Y$ e" D; ]1 i! k5 z31.1.3 自动failover 605
& a; ]) D8 B7 A- ]$ X. n! p9 K6 |8 `7 m: u1 z2 L
31.1.4 网络问题触发的failover操作 614
7 i: {$ X+ \/ z' y7 M+ ^9 J0 \5 g8 X
31.1.5 手动failover 614
; z4 A! T9 C3 E0 |7 i! ^( d' F; P/ M |8 T6 \: }, c" j
31.1.6 在线进行切换 615
+ j5 A# V r) l; G2 ^/ O0 k- N5 q! k, p/ Z% n
31.1.7 修复宕掉的Master 617+ l8 P! p9 p. B o) O
- z6 }' T6 o7 U7 d4 z31.2 MGR架构 617
- B0 N b3 d2 {( l9 Q% H6 h& g& g, ~7 f6 ^9 Y9 ~) e( p1 G
31.2.1 安装部署MGR 618
* i* Q$ P4 B1 W
- a; v8 l$ R4 j3 u31.2.2 监控 625
; f. l i, C# ~5 t7 j+ Q6 V" j4 G/ o' b6 }3 q+ x( G
31.2.3 primary成员切换 626
. {8 C" V; g: V! ~$ }' n
4 j y& ~4 N8 H+ x# m31.2.4 重要特性 628
' {) \9 [ U5 m- F/ ?7 O. P/ e' i% A% F
31.2.5 常见问题 629* t+ g& C$ {3 T, {( H
; n; w+ _9 F; ?# b3 ?4 \- M2 N31.3 InnoDB Cluster 636
0 W6 _9 o8 h1 R# I: c; s
& V) U/ G( L( B1 J$ d- J2 ?) F31.3.1 安装部署 6374 t5 p! c: [; `8 f* a9 F
% a4 e3 D) ]9 Y) o4 W& A3 {1 J
31.3.2 初始化MySQL Router 6428 W5 ?9 p4 ?* j2 z
8 b% F- w2 h$ x! B! E$ G# L- x) p
31.3.3 集群Metadata 6434 W6 S! i$ x5 }& N/ S
7 ]7 v2 `! c6 d" K: G! ]' U8 J. e
31.3.4 集群成员角色切换 644. d4 p& f& S4 u5 K7 e) n7 J/ _* h
" D& [/ {, J: p) V31.3.5 集群删除/增加节点 646
' |3 r' i9 |! t# H2 c5 H- D; v! M* e* R
6 a& j' z( H5 d: U, j+ {. I8 |! F31.3.6 重新加入节点 648+ n5 b7 }) ^7 ?
, E! s8 R# p, r! K31.4 小结 649* {' |" Y4 f' F% U) x
. W1 [$ {& c; e- J4 I* J第32章 MySQL中间件 650
) A' x0 n% R# e8 t p7 S8 F' D- r7 M: C
32.1 MySQL Router 650
g Y/ w# ^& S& U( t, e+ J' T
4 z" V# F& t& u! i9 F8 r32.1.1 MySQL Router的安装 651- \' G7 H' j' F9 j. D/ A
4 R3 q' X7 U; m7 z B
32.1.2 MySQL Router的初始化 653# q. V" I, C" a8 g; I, H" b
0 V" E- u4 o' Q8 z, m32.1.3 MySQL Router策略验证 656) `# h4 {3 C7 q( H( @5 m8 M
, i2 N5 ]% e9 C* `$ V9 Z: c& r
32.2 Cetus架构 658 java8.com
% f& g: d5 b( A
8 b/ e. G- k8 l1 o32.2.1 Cetus的安装配置 659
! ^% s7 }# T0 q8 f: m: M% S3 [4 Z! d, j5 X9 P( J& Z6 U# P
32.2.2 Cetus的使用 670: N2 [. }# D" N/ J) u
! m1 v4 I J; V* v
32.2.3 Cetus日志文件 6749 \) ~" B. B+ e+ d- C+ d1 P) n6 a
/ q9 l2 b1 J( q) b32.2.4 Cetus的后端管理 675
) T0 t# X q7 N
4 E4 ^( `3 T# p, m# M; M2 [32.2.5 Cetus的路由策略 678
; x8 ]( H; ~& n. d1 W. E6 L: X( `$ Q9 U
32.2.6 常见问题 681" {, g) a$ T0 l, E( t
6 B& ~) ]9 u4 d5 D
32.3 小结 6820 ]$ w# e$ o% I, B- @3 L0 f8 W
2 k$ j7 K" U7 ~ w' g' e0 I/ n1 [% N$ h' @! u
百度云盘下载地址(完全免费-绝无套路):2 u' V0 v, I% A4 e" ?9 c
* r/ {1 F+ m8 X' r5 U8 h# n y- P4 Z) S8 H$ O* @
, d9 C, ?; U6 q$ s* }: k+ B |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|