失效链接处理 |
千金良方:MySQL性能优化金字塔法则 PDF 下载
下载地址:
版权归出版社和原作者所有,链接已删除,请购买正版
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.dangdang.com/28477018.html
相关截图: 资料简介: 本书一共分为3篇:基础篇、案例篇和工具篇。“基础篇”从理论基础和基本原理层面介绍了MySQL的安装与配置、升级和体系结构,information_schema、sys_schema、performance_schema和mysql_schema,MySQL复制,MySQL事务,SQL语句优化及架构设计基础知识。“案例篇”从硬件和系统、MySQL架构等方面给出了性能优化的十几个案例,包括:性能测试的基本优化思路和*需要关注的性能指标解释、对日常SQL语句执行慢的基本定位、避免x86可用性的一般性方法、节能模式会怎样影响性能、I/O存储作为数据库*重要的依赖是如何影响数据库性能的、主备复制不一致可能有哪些原因、字符集不一致会造成哪些性能问题、在实际场景中锁的争用是怎样的。“工具篇”介绍了在MySQL性能优化过程中需要用到的各种工具,包括:dmidecode、top、dstat等硬件和系统排查工具;FIO、sysbench、HammerDB等压力测试工具;mysqldump、XtraBackup等备份工具;Percona、innotop、Prometheus等监控工具。 资料目录:
基 础 篇
第1章 MYSQL初始化安装、简单安全加固 3
1.1 背景 3
1.2 初始化安装 3
1.2.1 下载二进制安装文件 3
1.2.2 创建MYSQL用户 3
1.2.3 创建程序、数据存放目录 4
1.2.4 解压缩二进制安装文件并设置目录权限 4
1.2.5 软链接程序路径,并设置MYSQL命令环境变量 5
1.2.6 配置MY.CNF文件参数 5
1.2.7 初始化MYSQL 6
1.2.8 启动MYSQL 7
1.3 简单安全加固 8
1.3.1 登录MYSQL 8
1.3.2 删除非ROOT或非LOCALHOST的用户并修改ROOT密码 9
1.3.3 删除TEST库,清理MYSQL.DB表 10
1.4 创建用户、库、表、数据 12
1.4.1 创建管理用户并授权 12
1.4.2 创建库、表、程序账号 13
1.4.3 插入数据 14
1.5 MYSQL参数模板 16
第2章 MYSQL常用的两种升级方法 21
2.1 背景 21
2.2 MYSQL 5.5.54的安装 21
2.3 升级MYSQL 5.5.54到MYSQL 5.6.35 21
2.3.1 使用MYSQL_UPGRADE直接升级数据字典库 21
2.3.2 使用MYSQLDUMP逻辑备份数据 30
2.4 升级注意事项 38
第3章 MYSQL体系结构 41
3.1 快速安装MYSQL 41
3.2 数据目录结构 43
3.3 MYSQL SERVER体系结构 46
3.4 MYSQL中的存储引擎 48
3.5 INNODB存储引擎体系结构 48
3.6 INNODB存储引擎后台线程 52
3.7 MYSQL前台线程 54
第4章 PERFORMANCE_SCHEMA初相识 56
4.1 什么是PERFORMANCE_SCHEMA 56
4.2 PERFORMANCE_SCHEMA使用快速入门 57
4.2.1 检查当前数据库版本是否支持 57
4.2.2 启用PERFORMANCE_SCHEMA 58
4.2.3 PERFORMANCE_SCHEMA表的分类 59
4.2.4 PERFORMANCE_SCHEMA简单配置与使用 62
第5章 PERFORMANCE_SCHEMA配置详解 66
5.1 编译时配置 66
5.2 启动时配置 67
5.2.1 启动选项 67
5.2.2 SYSTEM VARIABLES 69
5.3 运行时配置 71
5.3.1 PERFORMANCE_TIMERS表 71
5.3.2 SETUP_TIMERS表 72
5.3.3 SETUP_CONSUMERS表 73
5.3.4 SETUP_INSTRUMENTS表 76
5.3.5 SETUP_ACTORS表 82
5.3.6 SETUP_OBJECTS表 85
5.3.7 THREADS表 87
第6章 PERFORMANCE_SCHEMA应用示例荟萃 93
6.1 利用等待事件排查MYSQL性能问题 93
6.2 锁问题排查 97
6.2.1 找出谁持有全局读锁 97
6.2.2 找出谁持有MDL锁 100
6.2.3 找出谁持有表级锁 104
6.2.4 找出谁持有行级锁 107
6.3 查看近的SQL语句执行信息 112
6.3.1 查看近的TOP SQL语句 112
6.3.2 查看近执行失败的SQL语句 114
6.4 查看SQL语句执行阶段和进度信息 117
6.4.1 查看SQL语句执行阶段信息 117
6.4.2 查看SQL语句执行进度信息 120
6.5 查看近的事务执行信息 121
6.6 查看多线程复制报错详情 123
第7章 SYS系统库初相识 126
7.1 SYS系统库使用基础环境 126
7.2 SYS系统库初体验 127
7.3 SYS系统库的进度报告功能 129
第8章 SYS系统库配置表 132
8.1 SYS_CONFIG表 132
8.2 SYS_CONFIG_INSERT_SET_USER触发器 136
8.3 SYS_CONFIG_UPDATE_SET_USER触发器 136
第9章 SYS系统库应用示例荟萃 138
9.1 查看慢SQL语句慢在哪里 138
9.2 查看是否有事务锁等待 140
9.3 查看是否有MDL锁等待 141
9.4 查看INNODB缓冲池中的热点数据有哪些 143
9.5 查看冗余索引 144
9.6 查看未使用的索引 145
9.7 查询表的增、删、改、查数据量和I/O耗时统计信息 145
9.8 查看MYSQL磁盘文件产生的磁盘流量与读写比例 146
9.9 查看哪些语句使用了全表扫描 147
9.10 查看哪些语句使用了文件排序 148
9.11 查看哪些语句使用了临时表 149
第10章 INFORMATION_SCHEMA初相识 151
10.1 什么是INFORMATION_SCHEMA 151
10.2 INFORMATION_SCHEMA组成对象 153
10.2.1 SERVER层的统计信息字典表 153
10.2.2 SERVER层的表级别对象字典表 154
10.2.3 SERVER层的混杂信息字典表 155
10.2.4 INNODB层的系统字典表 156
10.2.5 INNODB层的锁、事务、统计信息字典表 157
10.2.6 INNODB层的全文索引字典表 158
10.2.7 INNODB层的压缩相关字典表 160
第11章 INFORMATION_SCHEMA应用示例荟萃 161
11.1 使用SERVER层的字典表查询相关的元数据信息 161
11.1.1 查看数据库中是否使用了外键 161
11.1.2 查看INNODB表空间文件信息 162
11.1.3 查看索引的统计信息 165
11.1.4 查看表的字段相关信息 166
11.1.5 查看数据库中是否使用了存储程序 167
11.1.6 查看数据库中的分区表信息 168
11.1.7 查看数据库中的触发器 169
11.1.8 查看数据库中的计划任务 170
11.1.9 查看客户端会话的状态信息 172
11.2 使用INNODB层的字典表查询相关的元数据信息 173
11.2.1 查看索引列的信息 173
11.2.2 查看表的字段相关信息 175
11.2.3 查看事务锁等待信息 176
11.2.4 查看INNODB缓冲池中的热点数据有哪些 176
第12章 MYSQL系统库之权限系统表 177
12.1 USER 177
12.2 DB 179
12.3 TABLES_PRIV 180
12.4 COLUMNS_PRIV 181
12.5 PROCS_PRIV 182
12.6 PROXIES_PRIV 182
第13章 MYSQL系统库之访问权限控制系统 184
13.1 访问权限控制系统概述 184
13.2 MYSQL提供了哪些权限 185
13.3 MYSQL账号命名规则 191
13.4 MYSQL账号访问控制两阶段 192
13.4.1 阶段(账号和密码认证) 192
13.4.2 第二阶段(权限检查) 196
13.5 权限变更的影响 197
13.6 MYSQL常见连接问题 198
第14章 MYSQL系统库之统计信息表 200
14.1 统计信息概述 200
14.2 统计信息表详解 203
14.2.1 INNODB_TABLE_STATS 203
14.2.2 INNODB_INDEX_STATS 204
第15章 MYSQL系统库之复制信息表 206
15.1 复制信息表概述 206
15.2 复制信息表详解 207
15.2.1 SLAVE_MASTER_INFO 207
15.2.2 SLAVE_RELAY_LOG_INFO 209
15.2.3 SLAVE_WORKER_INFO 211
15.2.4 GTID_EXECUTED 215
15.2.5 NDB_BINLOG_INDEX 217
第16章 MYSQL系统库之日志记录表 218
16.1 日志信息概述 218
16.2 日志表详解 220
16.2.1 GENERAL_LOG 220
16.2.2 SLOW_LOG 223
第17章 MYSQL系统库应用示例荟萃 228
17.1 查看用户不同作用域的权限 228
17.1.1 查看全局权限 228
17.1.2 查看库级别权限 230
17.1.3 查看表级别权限 232
17.1.4 查看字段级别权限 234
17.2 查看统计信息 236
17.2.1 查看表统计信息 236
17.2.2 查看索引统计信息 236
17.3 查看SQL日志信息 237
第18章 复制技术的演进 245
18.1 复制格式概述 245
18.2 基于数据安全的复制技术演进 246
18.2.1 异步复制 246
18.2.2 半同步复制 247
18.2.3 增强半同步复制 249
18.2.4 组复制 250
18.2.5 GTID复制 253
18.3 基于复制效率的复制技术演进 255
18.3.1 单线程复制 255
18.3.2 DATABASE 并行复制 256
18.3.3 LOGICAL_CLOCK 并行复制 258
18.3.4 WRITESET并行复制 260
第19章 事务概念基础 263
19.1 4种事务隔离级别和3种异常现象 263
19.1.1 标准的事务隔离级别 263
19.1.2 调整事务隔离级别 264
19.2 从事务提交谈起 265
19.2.1 事务管理 265
19.2.2 数据库中的文件 266
19.2.3 WAL日志先写 266
19.3 MYSQL中的REDO日志 267
19.3.1 REDO日志落盘时间点 267
19.3.2 REDO日志格式 267
19.3.3 相关参数及概念 269
19.3.4 CHECKPOINT概念 269
19.3.5 REDO日志的设置 271
19.3.6 REDO日志与BINLOG协调工作 273
19.4 MVCC介绍 274
19.4.1 MVCC原理 274
19.4.2 具体代码 276
第20章 INNODB锁 280
20.1 INNODB锁概述 280
20.1.1 INNODB锁分类 280
20.1.2 行锁 280
20.1.3 表锁 281
20.1.4 锁模式对应的含义 282
20.2 加锁验证 282
20.2.1 REPEATABLE-READ隔离级别 表无显式主键和索引 283
20.2.2 REPEATABLE-READ隔离级别 表有显式主键但无索引 286
20.2.3 REPEATABLE-READ隔离级别 表无显式主键但有索引 288
20.2.4 REPEATABLE-READ隔离级别 表有显示主键和索引 291
20.2.5 READ-COMMITTED隔离级别 表无显式主键和索引 293
20.2.6 READ-COMMITTED隔离级别 表有显式主键无索引 295
20.2.7 READ-COMMITTED隔离级别 表无显式主键有索引 295
20.2.8 READ-COMMITTED隔离级别 表有显式主键和索引 296
第21章 SQL优化 299
21.1 SQL优化基础概念 299
21.2 MYSQL中的JOIN算法 303
21.3 MYSQL中的优化特性 305
第22章 MYSQL读写扩展 308
22.1 分布式架构概述 308
22.2 分库分表两种方式 309
22.2.1 中间件方式 309
22.2.2 客户端方式 309
22.2.3 客户端方式与中间件方式不同 310
22.2.4 分库与分表 310
22.3 中间件工作方式及原理 310
22.4 架构设计及业务场景 312
22.4.1 读写扩展案例 312
22.5 关于中间件的一些限制解释 314
22.5.1 跨库查询、复杂的SQL语句支持 314
22.5.2 分布式事务 314
案 例 篇
第23章 性能测试指标和相关术语 317
23.1 测试目标分类 317
23.1.1 已知故障信息采集 317
23.1.2 预估压力评测 317
23.2 性能测试指标 318
23.2.1 数据库性能通用“切口” 318
23.2.2 测试
|