深入浅出MySQL数据库开发优化与管理维护第3版
全新正版 可开发票 极速发货
¥
96.94
7.0折
¥
138
全新
仅1件
作者翟振兴、张恒岩、崔春华、黄荣、董骐铭
出版社人民邮电
ISBN9787115515391
出版时间2019-09
装帧其他
开本其他
定价138元
货号30717823
上书时间2024-05-18
商品详情
- 品相描述:全新
- 商品描述
-
导语摘要
基于官方的MySQL5.7版本进行全面修订,新增了大量8.0新特性。
新增数据库自动化运维章节,可帮助读者轻松搭建自己的RDS。
全面改写“架构篇”,复制/中间件/高可用更贴实战。
本书是同名经典畅销图书的升级版,基于MySQL5.7版本进行了内容改写,同时穿插介绍了MySQL8.0版本的重要功能,此外还增加了高可用架构、数据化自动运维、数据库中间件等主题介绍和应用实践。
本书分为“基础篇”“开发篇”“优化篇”“管理维护篇”和“架构篇”,其内容源自网易公司多位资深数据库专家数年的经验总结和MySQL数据库的使用心得。本书以实用性和可操作性为主旨,章节安排合理有序,内容丰富全面,讲解由浅入深,还提供了大量的一线工作实例。
无论是数据库初学人员,还是有一定经验的数据库管理/维护/开发人员,都可以在阅读本书的过程中或有匪浅。本书还适合作为数据库相关专业的参考用户,以及相关培训机柜的培训教材。
本书内容:基础篇MySQL的安装与配置SQL基础
MySQL支持的数据类型MySQL中的运算符常用函数开发篇表类型(存储引擎)的选择选择合适的数据类型字符集索引的设计和使用开发常用数据库对象事务控制和锁定语句SQL中的安全问题SQLMode及相关问题MySQL分区优化篇SQL优化锁问题优化MySQLServer磁盘I/O问题应用优化PS/SYS数据库故障诊断管理维护篇MySQL高级安装和升级MySQL中的常用工具MySQL日志备份与恢复MySQL权限与安全MySQL监控MySQL常见问题和应用技巧自动化运维系统的开发架构篇MySQL复制高可用架构MySQL中间件
目录
第 一部分 基础篇
第 1章 MySQL的安装与配置 2
1.1 MySQL的下载 2
1.1.1 在Windows平台下下载MySQL 3
1.1.2 在Linux平台下下载MySQL 3
1.2 MySQL的安装 5
1.2.1 在Windows平台下安装MySQL 5
1.2.2 在Linux平台下安装MySQL 8
1.3 MySQL的配置 12
1.3.1 Windows平台下配置MySQL 12
1.3.2 Linux平台下配置MySQL 13
1.4 启动和关闭MySQL服务 13
1.4.1 在Windows平台下启动和关闭MySQL服务 13
1.4.2 在Linux平台下启动和关闭MySQL服务 13
1.5 小结 14
第 2章 SQL基础 15
2.1 SQL简介 15
2.2 (My)SQL使用入门 15
2.2.1 SQL分类 15
2.2.2 DDL语句 16
2.2.3 DML语句 23
2.2.4 DCL语句 33
2.3 帮助的使用 34
2.3.1 按照层次看帮助 34
2.3.2 快速查阅帮助 35
2.4 查询元数据信息 36
2.5 小结 37
第3章 MySQL支持的数据类型 38
3.1 数值类型 38
3.2 日期时间类型 43
3.3 字符串类型 49
3.3.1 CHAR和VARCHAR类型 50
3.3.2 BINARY和VARBINARY类型 51
3.3.3 ENUM类型 51
3.3.4 SET类型 52
3.4 JSON类型 52
3.5 小结 54
第4章 MySQL中的运算符 55
4.1 算术运算符 55
4.2 比较运算符 56
4.3 逻辑运算符 59
4.4 位运算符 60
4.5 运算符的优先级 61
4.6 小结 62
第5章 常用函数 63
5.1 字符串函数 63
5.2 数值函数 66
5.3 日期和时间函数 68
5.4 流程函数 71
5.5 JSON函数 73
5.5.1 创建JSON函数 74
5.5.2 查询JSON函数 75
5.5.3 修改JSON的函数 79
5.5.4 查询JSON元数据函数 81
5.5.5 JSON工具函数 83
5.6 窗口函数 86
5.6.1 ROW_NUMBER() 87
5.6.2 RANK()/DENSE_RANK() 89
5.6.3 PERCENT_RANK()/CUME_DIST() 89
5.6.4 NFILE(N) 90
5.6.5 NTH_VALUE(expr,N) 91
5.6.6 LAG(expr,N)/LEAD(expr,N) 91
5.6.7 FIRST_VALUE(expr)/LAST_VALUE(expr) 92
5.6.8 聚合函数作为窗口函数 93
5.7 其他常用函数 93
5.8 小结 95
第二部分 开发篇
第6章 表类型(存储引擎)的选择 98
6.1 MySQL存储引擎概述 98
6.2 各种存储引擎的特性 100
6.2.1 MyISAM 101
6.2.2 InnoDB 102
6.2.3 MEMORY 108
6.2.4 MERGE 109
6.2.5 TokuDB 111
6.3 如何选择合适的存储引擎 112
6.4 小结 113
第7章 选择合适的数据类型 114
7.1 CHAR与VARCHAR 114
7.2 TEXT与BLOB 115
7.3 浮点数与定点数 118
7.4 日期类型选择 120
7.5 小结 120
第8章 字符集 121
8.1 字符集概述 121
8.2 Unicode简述 121
8.3 汉字及一些常见字符集 123
8.4 怎样选择合适的字符集 124
8.5 MySQL支持的字符集简介 125
8.6 MySQL字符集的设置 126
8.6.1 服务器字符集和排序规则 126
8.6.2 数据库字符集和排序规则 127
8.6.3 表字符集和排序规则 127
8.6.4 列字符集和排序规则 128
8.6.5 连接字符集和排序规则 128
8.7 字符集的修改步骤 129
8.8 小结 129
第9章 索引的设计和使用 130
9.1 索引概述 130
9.2 设计索引的原则 131
9.3 索引设计的误区 132
9.4 索引设计的一般步骤 132
9.5 BTREE索引与HASH索引 133
9.6 索引在MySQL 8.0中的改进 134
9.6.1 不可见索引 134
9.6.2 倒序索引 135
9.7 小结 136
第 10章 开发常用数据库对象 137
10.1 视图 137
10.1.1 什么是视图 137
10.1.2 视图操作 137
10.1.3 创建或者修改视图 137
10.1.4 删除视图 139
10.1.5 查看视图 139
10.2 存储过程和函数 140
10.2.1 什么是存储过程和函数 141
10.2.2 存储过程和函数的相关操作 141
10.2.3 创建、修改存储过程或者函数 141
10.2.4 删除存储过程或者函数 144
10.2.5 查看存储过程或者函数 144
10.2.6 变量的使用 146
10.2.7 定义条件和处理 146
10.2.8 光标的使用 148
10.2.9 流程控制 149
10.2.10 事件调度器 152
10.3 触发器 155
10.3.1 创建触发器 155
10.3.2 删除触发器 157
10.3.3 查看触发器 157
10.3.4 触发器的使用 158
10.4 小结 159
第 11章 事务控制和锁定语句 160
11.1 LOCK TABLES和UNLOCK TABLES 160
11.2 事务控制 161
11.3 分布式事务的使用 166
11.3.1 分布式事务的原理 166
11.3.2 分布式事务的语法 166
11.3.3 存在的问题 168
11.4 小结 171
第 12章 SQL中的安全问题 172
12.1 SQL注入简介 172
12.2 应用开发中可以采取的应对措施 173
12.2.1 PrepareStatement+Bind-Variable 173
12.2.2 使用应用程序提供的转换函数 174
12.2.3 自己定义函数进行校验 174
12.3 小结 175
第 13章 SQL Mode及相关问题 176
13.1 MySQL SQL Mode简介 176
13.2 SQL Mode的常见功能 178
13.3 常用的SQL Mode 180
13.4 SQL Mode在迁移中如何使用 182
13.5 小结 183
第 14章 MySQL分区 184
14.1 分区概述 184
14.2 分区类型 185
14.2.1 RANGE分区 187
14.2.2 LIST 分区 188
14.2.3 COLUMNS 分区 189
14.2.4 HASH分区 192
14.2.5 KEY分区 195
14.2.6 子分区 196
14.2.7 MySQL分区处理NULL值的方式 197
14.3 分区管理 199
14.3.1 RANGE与LIST分区管理 199
14.3.2 HASH与KEY分区管理 205
14.3.3 交换分区 206
14.4 小结 208
第三部分 优化篇
第 15章 SQL优化 210
15.1 优化SQL语句的一般步骤 210
15.1.1 通过show status命令了解各种SQL的执行频率 210
15.1.2 定位执行效率较低的SQL语句 211
15.1.3 通过EXPLAIN分析低效SQL的执行计划 211
15.1.4 通过show profile分析SQL 216
15.1.5 通过trace分析优化器如何选择执行计划 219
15.1.6 确定问题并采取相应的优化措施 220
15.2 索引问题 220
15.2.1 索引的存储分类 220
15.2.2 MySQL如何使用索引 222
15.2.3 查看索引使用情况 231
15.3 两个简单实用的优化方法 231
15.3.1 定期分析表和检查表 232
15.3.2 定期优化表 233
15.4 常用SQL的优化 233
15.4.1 大批量插入数据 234
15.4.2 优化INSERT语句 235
15.4.3 优化ORDER BY语句 235
15.4.4 优化GROUP BY语句 239
15.4.5 优化JOIN操作 239
15.4.6 优化嵌套查询 243
15.4.7 MySQL如何优化OR条件 245
15.4.8 优化分页查询 246
15.4.9 使用SQL提示 248
15.5 直方图 250
15.5.1 什么是直方图 250
15.5.2 直方图的分类 251
15.5.3 直方图实例应用 252
15.5.4 直方图小结 256
15.6 使用查询重写 256
15.7 常用SQL技巧 259
15.7.1 正则表达式的使用 259
15.7.2 巧用RAND()提取随机行 261
15.7.3 利用GROUP BY的WITH ROLLUP子句 262
15.7.4 用BIT GROUP FUNCTIONS做统计 263
15.7.5 数据库名、表名大小写问题 265
15.7.6 使用外键需要注意的问题 265
15.8 小结 266
第 16章 锁问题 267
16.1 MySQL锁概述 267
16.2 MyISAM表锁 268
16.2.1 查询表级锁争用情况 268
16.2.2 MySQL表级锁的锁模式 268
16.2.3 如何加表锁 269
16.2.4 并发插入(Concurrent Inserts) 271
16.2.5 MyISAM的锁调度 272
16.3 InnoDB锁问题 273
16.3.1 背景知识 273
16.3.2 获取InnoDB行锁争用情况 275
16.3.3 InnoDB的行锁模式及加锁方法 276
16.3.4 InnoDB行锁实现方式 279
16.3.5 Next-Key锁 283
16.3.6 恢复和复制的需要,对InnoDB锁机制的影响 284
16.3.7 InnoDB在不同隔离级别下的一致性读及锁的差异 287
16.3.8 什么时候使用表锁 288
16.3.9 关于死锁 289
16.4 小结 294
第 17章 优化MySQL Server 296
17.1 MySQL体系结构概览 296
17.2 MySQL内存管理及优化 298
17.2.1 内存优化原则 298
17.2.2 MyISAM内存优化 298
17.2.3 InnoDB内存优化 301
17.2.4 调整用户服务线程排序缓存区 305
17.3 InnoDB log机制及优化 305
17.3.1 InnoDB重做日志 305
17.3.2 innodb_flush_log_at_trx_commit的设置 306
17.3.3 设置log file size,控制检查点 307
17.3.4 调整innodb_log_buffer_size 308
17.4 调整MySQL并发相关的参数 308
17.4.1 调整max_connections,提高并发连接 308
17.4.2 调整back_log 309
17.4.3 调整table_open_cache 309
17.4.4 调整thread_cache_size 309
17.4.5 innodb_lock_wait_timeout的设置 309
17.5 持久化全局变量 309
17.6 使用资源组 310
17.7 小结 312
第 18章 磁盘I/O问题 313
18.1 使用固态硬盘 313
18.2 使用磁盘阵列 314
18.2.1 常见RAID级别及其特性 314
18.2.2 如何选择RAID级别 315
18.3 虚拟文件卷或软RAID 315
18.4 使用Symbolic Links分布I/O 315
18.5 禁止操作系统更新文件的atime属性 316
18.6 调整I/O调度算法 316
18.7 RAID卡电池充放电问题 318
18.7.1 什么是RAID卡电池充放电 318
18.7.2 RAID卡缓存策略 319
18.7.3 如何应对RAID卡电池充放电带来的I/O性能波动 321
18.8 NUMA架构优化 322
18.9 小结 325
第 19章 应用优化 326
19.1 优化数据表的设计 326
19.1.1 优化表的数据类型 326
19.1.2 通过拆分提高表的访问效率 328
19.1.3 逆规范化 329
19.2 数据库应用优化 330
19.2.1 使用连接池 330
19.2.2 减少对MySQL的访问 330
19.2.3 负载均衡 331
19.3 小结 331
第 20章 PS/SYS数据库 332
20.1 Performance Schema库 332
20.1.1 如何开启PS库 332
20.1.2 PS库的表 333
20.2 SYS 库 335
20.2.1 SYS库的对象 335
20.2.2 SYS对象的实际应用 336
20.3 小结 340
第 21章 故障诊断 341
21.1 故障诊断和处理的原则 341
21.2 故障处理一般流程 343
21.2.1 故障发现 343
21.2.2 故障定位 345
21.2.3 故障解决 346
21.3 典型故障案例 349
21.3.1 案例1 349
21.3.2 案例2 353
21.4 小结 356
第四部分 管理维护篇
第 22章 MySQL高级安装和升级 358
22.1 Linux/UNIX平台下的安装 358
22.1.1 安装包比较 358
22.1.2 安装二进制包 359
22.1.3 安装源码包 359
22.1.4 参数设置方法 360
22.2 升级MySQL 361
22.3 小结 363
第 23章 MySQL中的常用工具 364
23.1 MySQL官方工具 364
23.1.1 mysql(客户端连接工具) 364
23.1.2 mysqladmin(MySQL管理工具) 371
23.1.3 mysqlbinlog(日志管理工具) 371
23.1.4 mysqlcheck(表维护工具) 378
23.1.5 mysqldump(数据导出工具) 380
23.1.6 mysqlpump(并行的数据导出工具) 384
23.1.7 mysqlimport(数据导入工具) 385
23.1.8 mysqlshow(数据库对象查看工具) 385
23.1.9 perror(错误代码查看工具) 387
23.1.10 MySQL Shell 387
23.2 Percona工具包 390
23.2.1 pt-archiver(数据归档工具) 391
23.2.2 pt-config-diff(参数对比工具) 393
23.2.3 pt-duplicate-key-checker(检查冗余索引工具) 394
23.2.4 pt-find(查找工具) 395
23.2.5 pt-heartbeat(监控主从延迟工具) 395
23.2.6 pt-kill(杀死会话工具) 397
23.2.7 pt-online-schema-change(在线修改表结构工具) 397
23.2.8 pt-query-digest(SQL分析工具) 399
23.2.9 pt-table-checksum(数据检验工具) 401
23.2.10 pt-table-sync(数据同步工具) 402
23.3 小结 403
第 24章 MySQL日志 404
24.1 错误日志 404
24.2 二进制日志 405
24.2.1 日志的位置和格式 405
24.2.2 日志的读取 406
24.2.3 日志的删除 407
24.2.4 日志的事件 411
24.2.5 日志闪回 412
24.3 查询日志 415
24.3.1 日志的位置和格式 415
24.3.2 日志的读取 416
24.4 慢查询日志 416
24.4.1 文件位置和格式 416
24.4.2 日志的读取 417
24.4.3 Anemometer简介 419
24.5 小结 421
第 25章 备份与恢复 422
25.1 备份/恢复策略 422
25.2 逻辑备份和恢复 422
25.2.1 备份 423
25.2.2 完全恢复 425
25.2.3 基于时间点恢复 427
25.2.4 基于位置恢复 427
25.2.5 并行恢复 427
25.3 物理备份和恢复 428
25.3.1 冷备份和热备份 428
25.3.2 MyISAM存储引擎的热备份 429
25.3.3 InnoDB存储引擎的热备份 429
25.4 表的导入和导出 438
25.4.1 导出 438
25.4.2 导入 442
25.5 小结 445
第 26章 MySQL权限与安全 446
26.1 MySQL权限管理 446
26.1.1 权限系统的工作原理 446
26.1.2 权限表的存取 446
26.1.3 账号管理 449
26.2 MySQL安全问题 461
26.2.1 操作系统相关的安全问题 461
26.2.2 数据库相关的安全问题 463
26.3 其他安全设置选项 471
26.3.1 密码插件 471
26.3.2 safe-user-create 472
26.3.3 表空间加密 473
26.3.4 skip-grant-tables 474
26.3.5 skip-networking 474
26.3.6 skip-show-database 475
26.4 小结 475
第 27章 MySQL监控 476
27.1 如何选择一个监控方案 476
27.1.1 选择何种监控方式 476
27.1.2 如何选择适合自己的监控工具 477
27.2 常用的网络监控工具 477
27.2.1 Open-Falcon简介 477
27.2.2 Nagios简介 479
27.2.3 Zabbix简介 480
27.2.4 几种常见开源软件比较 481
27.3 Zabbix 部署 481
27.3.1 Zabbix Server软件安装 482
27.3.2 Zabbix Serv
— 没有更多了 —
以下为对购买帮助不大的评价