《深入浅出MySQL++数据库开发优化与管理维护》PDF

943 阅读20分钟

《深入浅出MySQL++数据库开发优化与管理维护》

链接: pan.baidu.com/s/1ydnPTZ53… 提取码: 5eez

本书分为“基础篇”“开发篇”“优化篇”“管理维护篇”和“架构篇”,其内容源自网易公司多位资深数据库专家数年的经验总结和MySQL数据库的使用心得。本书以实用性和可操作性为主旨,章节安排合理有序,内容丰富全面,讲解由浅入深,还提供了大量的一线工作实例。

无论是数据库初学人员,还是有一定经验的数据库管理/维护/开发人员,都可以在阅读本书的过程中或有匪浅。本书还适合作为数据库相关专业的参考用户,以及相关培训机柜的培训教材


目录

第 一部分 基础篇

第 1章 MySQL的安装与配置 2

11 MySQL的下载 2

111 在Windows平台下下载MySQL 3

112 在Linux平台下下载MySQL 3

12 MySQL的安装 5

121 在Windows平台下安装MySQL 5

122 在Linux平台下安装MySQL 8

13 MySQL的配置 12

131 Windows平台下配置MySQL 12

132 Linux平台下配置MySQL 13

14 启动和关闭MySQL服务 13

141 在Windows平台下启动和关闭MySQL服务 13

142 在Linux平台下启动和关闭MySQL服务 13

15 小结 14

第 2SQL基础 15

21 SQL简介 15

22 (My)SQL使用入门 15

221 SQL分类 15

222 DDL语句 16

223 DML语句 23

224 DCL语句 33

23 帮助的使用 34

231 按照层次看帮助 34

232 快速查阅帮助 35

24 查询元数据信息 36

25 小结 373章 MySQL支持的数据类型 38

31 数值类型 38

32 日期时间类型 43

33 字符串类型 49

331 CHARVARCHAR类型 50

332 BINARYVARBINARY类型 51

333 ENUM类型 51

334 SET类型 52

34 JSON类型 52

35 小结 544章 MySQL中的运算符 55

41 算术运算符 55

42 比较运算符 56

43 逻辑运算符 59

44 位运算符 60

45 运算符的优先级 61

46 小结 625章 常用函数 63

51 字符串函数 63

52 数值函数 66

53 日期和时间函数 68

54 流程函数 71

55 JSON函数 73

551 创建JSON函数 74

552 查询JSON函数 75

553 修改JSON的函数 79

554 查询JSON元数据函数 81

555 JSON工具函数 83

56 窗口函数 86

561 ROW_NUMBER() 87

562 RANK()/DENSE_RANK() 89

563 PERCENT_RANK()/CUME_DIST() 89

564 NFILE(N) 90

565 NTH_VALUE(expr,N) 91

566 LAG(expr,N)/LEAD(expr,N) 91

567 FIRST_VALUE(expr)/LAST_VALUE(expr) 92

568 聚合函数作为窗口函数 93

57 其他常用函数 93

58 小结 95

第二部分 开发篇

第6章 表类型(存储引擎)的选择 98

61 MySQL存储引擎概述 98

62 各种存储引擎的特性 100

621 MyISAM 101

622 InnoDB 102

623 MEMORY 108

624 MERGE 109

625 TokuDB 111

63 如何选择合适的存储引擎 112

64 小结 1137章 选择合适的数据类型 114

71 CHARVARCHAR 114

72 TEXT与BLOB 115

73 浮点数与定点数 118

74 日期类型选择 120

75 小结 1208章 字符集 121

81 字符集概述 121

82 Unicode简述 121

83 汉字及一些常见字符集 123

84 怎样选择合适的字符集 124

85 MySQL支持的字符集简介 125

86 MySQL字符集的设置 126

861 服务器字符集和排序规则 126

862 数据库字符集和排序规则 127

863 表字符集和排序规则 127

864 列字符集和排序规则 128

865 连接字符集和排序规则 128

87 字符集的修改步骤 129

88 小结 1299章 索引的设计和使用 130

91 索引概述 130

92 设计索引的原则 131

93 索引设计的误区 132

94 索引设计的一般步骤 132

95 BTREE索引与HASH索引 133

96 索引在MySQL 80中的改进 134

961 不可见索引 134

962 倒序索引 135

97 小结 136

第 10章 开发常用数据库对象 137

101 视图 137

1011 什么是视图 137

1012 视图操作 137

1013 创建或者修改视图 137

1014 删除视图 139

1015 查看视图 139

102 存储过程和函数 140

1021 什么是存储过程和函数 141

1022 存储过程和函数的相关操作 141

1023 创建、修改存储过程或者函数 141

1024 删除存储过程或者函数 144

1025 查看存储过程或者函数 144

1026 变量的使用 146

1027 定义条件和处理 146

1028 光标的使用 148

1029 流程控制 149

10210 事件调度器 152

103 触发器 155

1031 创建触发器 155

1032 删除触发器 157

1033 查看触发器 157

1034 触发器的使用 158

104 小结 159

第 11章 事务控制和锁定语句 160

111 LOCK TABLES和UNLOCK TABLES 160

112 事务控制 161

113 分布式事务的使用 166

1131 分布式事务的原理 166

1132 分布式事务的语法 166

1133 存在的问题 168

114 小结 171

第 12SQL中的安全问题 172

121 SQL注入简介 172

122 应用开发中可以采取的应对措施 173

1221 PrepareStatement+Bind-Variable 173

1222 使用应用程序提供的转换函数 174

1223 自己定义函数进行校验 174

123 小结 175

第 13SQL Mode及相关问题 176

131 MySQL SQL Mode简介 176

132 SQL Mode的常见功能 178

133 常用的SQL Mode 180

134 SQL Mode在迁移中如何使用 182

135 小结 183

第 14章 MySQL分区 184

141 分区概述 184

142 分区类型 185

1421 RANGE分区 187

1422 LIST 分区 188

1423 COLUMNS 分区 189

1424 HASH分区 192

1425 KEY分区 195

1426 子分区 196

1427 MySQL分区处理NULL值的方式 197

143 分区管理 199

1431 RANGE与LIST分区管理 199

1432 HASH与KEY分区管理 205

1433 交换分区 206

144 小结 208

第三部分 优化篇

第 15SQL优化 210

151 优化SQL语句的一般步骤 210

1511 通过show status命令了解各种SQL的执行频率 210

1512 定位执行效率较低的SQL语句 211

1513 通过EXPLAIN分析低效SQL的执行计划 211

1514 通过show profile分析SQL 216

1515 通过trace分析优化器如何选择执行计划 219

1516 确定问题并采取相应的优化措施 220

152 索引问题 220

1521 索引的存储分类 220

1522 MySQL如何使用索引 222

1523 查看索引使用情况 231

153 两个简单实用的优化方法 231

1531 定期分析表和检查表 232

1532 定期优化表 233

154 常用SQL的优化 233

1541 大批量插入数据 234

1542 优化INSERT语句 235

1543 优化ORDER BY语句 235

1544 优化GROUP BY语句 239

1545 优化JOIN操作 239

1546 优化嵌套查询 243

1547 MySQL如何优化OR条件 245

1548 优化分页查询 246

1549 使用SQL提示 248

155 直方图 250

1551 什么是直方图 250

1552 直方图的分类 251

1553 直方图实例应用 252

1554 直方图小结 256

156 使用查询重写 256

157 常用SQL技巧 259

1571 正则表达式的使用 259

1572 巧用RAND()提取随机行 261

1573 利用GROUP BYWITH ROLLUP子句 262

1574 用BIT GROUP FUNCTIONS做统计 263

1575 数据库名、表名大小写问题 265

1576 使用外键需要注意的问题 265

158 小结 266

第 16章 锁问题 267

161 MySQL锁概述 267

162 MyISAM表锁 268

1621 查询表级锁争用情况 268

1622 MySQL表级锁的锁模式 268

1623 如何加表锁 269

1624 并发插入(Concurrent Inserts) 271

1625 MyISAM的锁调度 272

163 InnoDB锁问题 273

1631 背景知识 273

1632 获取InnoDB行锁争用情况 275

1633 InnoDB的行锁模式及加锁方法 276

1634 InnoDB行锁实现方式 279

1635 Next-Key锁 283

1636 恢复和复制的需要,对InnoDB锁机制的影响 284

1637 InnoDB在不同隔离级别下的一致性读及锁的差异 287

1638 什么时候使用表锁 288

1639 关于死锁 289

164 小结 294

第 17章 优化MySQL Server 296

171 MySQL体系结构概览 296

172 MySQL内存管理及优化 298

1721 内存优化原则 298

1722 MyISAM内存优化 298

1723 InnoDB内存优化 301

1724 调整用户服务线程排序缓存区 305

173 InnoDB log机制及优化 305

1731 InnoDB重做日志 305

1732 innodb_flush_log_at_trx_commit的设置 306

1733 设置log file size,控制检查点 307

1734 调整innodb_log_buffer_size 308

174 调整MySQL并发相关的参数 308

1741 调整max_connections,提高并发连接 308

1742 调整back_log 309

1743 调整table_open_cache 309

1744 调整thread_cache_size 309

1745 innodb_lock_wait_timeout的设置 309

175 持久化全局变量 309

176 使用资源组 310

177 小结 312

第 18章 磁盘I/O问题 313

181 使用固态硬盘 313

182 使用磁盘阵列 314

1821 常见RAID级别及其特性 314

1822 如何选择RAID级别 315

183 虚拟文件卷或软RAID 315

184 使用Symbolic Links分布I/O 315

185 禁止操作系统更新文件的atime属性 316

186 调整I/O调度算法 316

187 RAID卡电池充放电问题 318

1871 什么是RAID卡电池充放电 318

1872 RAID卡缓存策略 319

1873 如何应对RAID卡电池充放电带来的I/O性能波动 321

188 NUMA架构优化 322

189 小结 325

第 19章 应用优化 326

191 优化数据表的设计 326

1911 优化表的数据类型 326

1912 通过拆分提高表的访问效率 328

1913 逆规范化 329

192 数据库应用优化 330

1921 使用连接池 330

1922 减少对MySQL的访问 330

1923 负载均衡 331

193 小结 331

第 20章 PS/SYS数据库 332

201 Performance Schema库 332

2011 如何开启PS库 332

2012 PS库的表 333

202 SYS 库 335

2021 SYS库的对象 335

2022 SYS对象的实际应用 336

203 小结 340

第 21章 故障诊断 341

211 故障诊断和处理的原则 341

212 故障处理一般流程 343

2121 故障发现 343

2122 故障定位 345

2123 故障解决 346

213 典型故障案例 349

2131 案例1 349

2132 案例2 353

214 小结 356

第四部分 管理维护篇

第 22章 MySQL高级安装和升级 358

221 Linux/UNIX平台下的安装 358

2211 安装包比较 358

2212 安装二进制包 359

2213 安装源码包 359

2214 参数设置方法 360

222 升级MySQL 361

223 小结 363

第 23章 MySQL中的常用工具 364

231 MySQL官方工具 364

2311 mysql(客户端连接工具) 364

2312 mysqladmin(MySQL管理工具) 371

2313 mysqlbinlog(日志管理工具) 371

2314 mysqlcheck(表维护工具) 378

2315 mysqldump(数据导出工具) 380

2316 mysqlpump(并行的数据导出工具) 384

2317 mysqlimport(数据导入工具) 385

2318 mysqlshow(数据库对象查看工具) 385

2319 perror(错误代码查看工具) 387

23110 MySQL Shell 387

232 Percona工具包 390

2321 pt-archiver(数据归档工具) 391

2322 pt-config-diff(参数对比工具) 393

2323 pt-duplicate-key-checker(检查冗余索引工具) 394

2324 pt-find(查找工具) 395

2325 pt-heartbeat(监控主从延迟工具) 395

2326 pt-kill(杀死会话工具) 397

2327 pt-online-schema-change(在线修改表结构工具) 397

2328 pt-query-digest(SQL分析工具) 399

2329 pt-table-checksum(数据检验工具) 401

23210 pt-table-sync(数据同步工具) 402

233 小结 403

第 24章 MySQL日志 404

241 错误日志 404

242 二进制日志 405

2421 日志的位置和格式 405

2422 日志的读取 406

2423 日志的删除 407

2424 日志的事件 411

2425 日志闪回 412

243 查询日志 415

2431 日志的位置和格式 415

2432 日志的读取 416

244 慢查询日志 416

2441 文件位置和格式 416

2442 日志的读取 417

2443 Anemometer简介 419

245 小结 421

第 25章 备份与恢复 422

251 备份/恢复策略 422

252 逻辑备份和恢复 422

2521 备份 423

2522 完全恢复 425

2523 基于时间点恢复 427

2524 基于位置恢复 427

2525 并行恢复 427

253 物理备份和恢复 428

2531 冷备份和热备份 428

2532 MyISAM存储引擎的热备份 429

2533 InnoDB存储引擎的热备份 429

254 表的导入和导出 438

2541 导出 438

2542 导入 442

255 小结 445

第 26章 MySQL权限与安全 446

261 MySQL权限管理 446

2611 权限系统的工作原理 446

2612 权限表的存取 446

2613 账号管理 449

262 MySQL安全问题 461

2621 操作系统相关的安全问题 461

2622 数据库相关的安全问题 463

263 其他安全设置选项 471

2631 密码插件 471

2632 safe-user-create 472

2633 表空间加密 473

2634 skip-grant-tables 474

2635 skip-networking 474

2636 skip-show-database 475

264 小结 475

第 27章 MySQL监控 476

271 如何选择一个监控方案 476

2711 选择何种监控方式 476

2712 如何选择适合自己的监控工具 477

272 常用的网络监控工具 477

2721 Open-Falcon简介 477

2722 Nagios简介 479

2723 Zabbix简介 480

2724 几种常见开源软件比较 481

273 Zabbix 部署 481

2731 Zabbix Server软件安装 482

2732 Zabbix Server配置与启动 482

2733 配置Zabbix Web服务端 483

2734 Zabbix Agent安装和配置 485

2735 PMP插件介绍和部署 486

2736 Zabbix Web端操作 489

274 性能医生orzdba 491

2741 orzdba安装 491

2742 orzdba使用 492

275 小结 492

第 28章 MySQL常见问题和应用技巧 493

281 忘记MySQL的root密码 493

282 数据目录磁盘空间不足的问题 494

283 mysql.sock丢失后如何连接数据库 495

284 从mysqldump文件抽取需要恢复的表 496

285 使用innobackupex备份恢复单表 497

286 分析BINLOG,找出写的热点表 498

287 在线DDL 499

288 小结 502

第 29章 自动化运维系统的开发 503

291 MySQL自动化运维背景 503

292 CMDB系统搭建 504

2921 CMDB数据库 504

2922 批量管理系统 505

2923 后台API 511

293 任务调度系统 515

2931 Celery安装 515

2932 Celery任务部署 516

2933 Flower监控 518

294 客户端搭建 519

2941 Vue.js简介 519

2942 Vue项目搭建 520

295 自动化运维平台实战 525

2951 搭建CMDB 525

2952 搭建任务调度平台 528

2953 搭建客户端 529

2954 项目演示 532

296 小结 532

第五部分 架构篇

第30章 MySQL复制 534

301 复制概述 534

3011 复制中的各类文件 536

3012 3种复制方式 537

3013 复制的4种常见架构 540

302 复制搭建 543

3021 异步复制 543

3022 多线程复制 547

3023 增强半同步复制 553

303 GTID(Global Transaction Identifier) 558

3031 格式与存储 558

3032 gtid_purged 561

3033 复制搭建 565

3034 主从切换 571

3035 常见问题 572

304 主要复制启动选项 576

3041 log-slave-updates 576

3042 read-only/super_read_only 576

3043 指定复制的数据库或者表 577

3044 slave-skip-errors 579

305 日常管理维护 579

3051 查看从库复制状态和进度 579

3052 主从复制问题集锦 580

3053 多主复制时的自增长变量冲突问题 582

3054 如何提高复制的性能 584

306 小结 58831章 高可用架构 589

311 MHA架构 589

3111 安装部署MHA 591

3112 应用连接配置 598

3113 自动failover 605

3114 网络问题触发的failover操作 614

3115 手动failover 614

3116 在线进行切换 615

3117 修复宕掉的Master 617

312 MGR架构 617

3121 安装部署MGR 618

3122 监控 625

3123 primary成员切换 626

3124 重要特性 628

3125 常见问题 629

313 InnoDB Cluster 636

3131 安装部署 637

3132 初始化MySQL Router 642

3133 集群Metadata 643

3134 集群成员角色切换 644

3135 集群删除/增加节点 646

3136 重新加入节点 648

314 小结 64932章 MySQL中间件 650

321 MySQL Router 650

3211 MySQL Router的安装 651

3212 MySQL Router的初始化 653

3213 MySQL Router策略验证 656

322 Cetus架构 658

3221 Cetus的安装配置 659

3222 Cetus的使用 670

3223 Cetus日志文件 674

3224 Cetus的后端管理 675

3225 Cetus的路由策略 678

3226 常见问题 681

323 小结 682


最后,这里为大家准备了几百本的互联网电子书,有需要的过来取吧。点击获取

本页书籍均来自网络,如有侵权,请联系我立即删除。我的邮箱:yaojianguolq@163.com