作品简介

本书一共分为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等监控工具。

李春:原阿里巴巴MySQLDBA团队技术Leader,全程参与阿里数据库架构从Oracle迁移到MySQL的过程,参与分布式中间件Cobar设计。现为沃趣科技联合创始人&首席架构师,负责MySQL、基础软件及部分关键组件的技术选型、风险评估等。罗小波:沃趣科技高级数据库工程师,主要负责MySQL产品的数据库支撑与售后二线支撑。曾参与版本发布系统、轻量级监控系统、运维管理平台、数据库管理平台的设计与编写,熟悉MySQL体系结构,Innodb存储引擎,喜好专研开源技术,多次在公开场合做过线下线上数据库专题分享,发表过多篇与数据库相关的研究文章。董红禹:沃趣科技MySQLDBA,为过多家大型企业进行过故障解决、架构设计、性能优化,例如中信证券、浙江农信、陕西农信、邮储银行等。规划并实施了浙江农信互联网核心金融平台。

作品目录

  • 推荐序1
  • 推荐序2
  • 推荐序3
  • 前言
  • 基础篇
  • 第1章 MySQL初始化安装、简单安全加固
  • 1.1 背景
  • 1.2 初始化安装
  • 1.3 简单安全加固
  • 1.4 创建用户、库、表、数据
  • 1.5 MySQL参数模板
  • 第2章 MySQL常用的两种升级方法
  • 2.1 背景
  • 2.2 MySQL 5.5.54的安装
  • 2.3 升级MySQL 5.5.54到MySQL 5.6.35
  • 2.4 升级注意事项
  • 第3章 MySQL体系结构
  • 3.1 快速安装MySQL
  • 3.2 数据目录结构
  • 3.3 MySQL Server体系结构
  • 3.4 MySQL中的存储引擎
  • 3.5 InnoDB存储引擎体系结构
  • 3.6 InnoDB存储引擎后台线程
  • 3.7 MySQL前台线程
  • 第4章 performance_schema初相识
  • 4.1 什么是performance_schema
  • 4.2 performance_schema使用快速入门
  • 第5章 performance_schema配置详解
  • 5.1 编译时配置
  • 5.2 启动时配置
  • 5.3 运行时配置
  • 第6章 performance_schema应用示例荟萃
  • 6.1 利用等待事件排查MySQL性能问题
  • 6.2 锁问题排查
  • 6.3 查看最近的SQL语句执行信息
  • 6.4 查看SQL语句执行阶段和进度信息
  • 6.5 查看最近的事务执行信息
  • 6.6 查看多线程复制报错详情
  • 第7章 sys系统库初相识
  • 7.1 sys系统库使用基础环境
  • 7.2 sys系统库初体验
  • 7.3 sys系统库的进度报告功能
  • 第8章 sys系统库配置表
  • 8.1 sys_config表
  • 8.2 sys_config_insert_set_user触发器
  • 8.3 sys_config_update_set_user触发器
  • 第9章 sys系统库应用示例荟萃
  • 9.1 查看慢SQL语句慢在哪里
  • 9.2 查看是否有事务锁等待
  • 9.3 查看是否有MDL锁等待
  • 9.4 查看InnoDB缓冲池中的热点数据有哪些
  • 9.5 查看冗余索引
  • 9.6 查看未使用的索引
  • 9.7 查询表的增、删、改、查数据量和I/O耗时统计信息
  • 9.8 查看MySQL磁盘文件产生的磁盘流量与读写比例
  • 9.9 查看哪些语句使用了全表扫描
  • 9.10 查看哪些语句使用了文件排序
  • 9.11 查看哪些语句使用了临时表
  • 第10章 information_schema初相识
  • 10.1 什么是information_schema
  • 10.2 information_schema组成对象
  • 第11章 information_schema应用示例荟萃
  • 11.1 使用Server层的字典表查询相关的元数据信息
  • 11.2 使用InnoDB层的字典表查询相关的元数据信息
  • 第12章 mysql系统库之权限系统表
  • 12.1 user
  • 12.2 db
  • 12.3 tables_priv
  • 12.4 columns_priv
  • 12.5 procs_priv
  • 12.6 proxies_priv
  • 第13章 mysql系统库之访问权限控制系统
  • 13.1 访问权限控制系统概述
  • 13.2 MySQL提供了哪些权限
  • 13.3 MySQL账号命名规则
  • 13.4 MySQL账号访问控制两阶段
  • 13.5 权限变更的影响
  • 13.6 MySQL常见连接问题
  • 第14章 mysql系统库之统计信息表
  • 14.1 统计信息概述
  • 14.2 统计信息表详解
  • 第15章 mysql系统库之复制信息表
  • 15.1 复制信息表概述
  • 15.2 复制信息表详解
  • 第16章 mysql系统库之日志记录表
  • 16.1 日志信息概述
  • 16.2 日志表详解
  • 第17章 mysql系统库应用示例荟萃
  • 17.1 查看用户不同作用域的权限
  • 17.2 查看统计信息
  • 17.3 查看SQL日志信息
  • 第18章 复制技术的演进
  • 18.1 复制格式概述
  • 18.2 基于数据安全的复制技术演进
  • 18.3 基于复制效率的复制技术演进
  • 第19章 事务概念基础
  • 19.1 4种事务隔离级别和3种异常现象
  • 19.2 从事务提交谈起
  • 19.3 MySQL中的Redo日志
  • 19.4 MVCC介绍
  • 第20章 InnoDB锁
  • 20.1 InnoDB锁概述
  • 20.2 加锁验证
  • 第21章 SQL优化
  • 21.1 SQL优化基础概念
  • 21.2 MySQL中的Join算法
  • 21.3 MySQL中的优化特性
  • 第22章 MySQL读写扩展
  • 22.1 分布式架构概述
  • 22.2 分库分表两种方式
  • 22.3 中间件工作方式及原理
  • 22.4 架构设计及业务场景
  • 22.5 关于中间件的一些限制解释
  • 案例篇
  • 第23章 性能测试指标和相关术语
  • 23.1 测试目标分类
  • 23.2 性能测试指标
  • 23.3 本章小结
  • 第24章 历史问题诊断和现场故障分析
  • 24.1 故障分析和验证
  • 24.2 故障复现排查
  • 24.3 本章小结
  • 第25章 性能调优金字塔
  • 25.1 硬件和系统调优
  • 25.2 MySQL调优
  • 25.3 架构调优
  • 25.4 本章小结
  • 第26章 SQL语句执行慢真假难辨
  • 26.1 概述
  • 26.2 测试环境
  • 26.3 采集数据包
  • 26.4 解析数据包
  • 26.5 本章小结
  • 第27章 如何避免三天两头换硬盘、内存、主板
  • 27.1 概述
  • 27.2 服务器标准化
  • 27.3 上线前烤机
  • 27.4 本章小结
  • 第28章 每隔45天的MySQL性能低谷
  • 28.1 存储知识小普及
  • 28.2 每隔45天的性能抖动
  • 28.3 影响I/O性能的三种RAID策略
  • 28.4 本章小结
  • 第29章 MySQL连接无法自动释放
  • 29.1 环境配置
  • 29.2 问题现象
  • 29.3 诊断分析
  • 29.4 解决方案
  • 29.5 本章小结
  • 第30章 查询MySQL偶尔比较慢
  • 30.1 环境配置
  • 30.2 问题现象
  • 30.3 诊断分析
  • 30.4 选择VIP还是DNS访问MySQL
  • 30.5 CPU节能模式
  • 30.6 本章小结
  • 第31章 MySQL最多只允许214个连接
  • 31.1 环境配置
  • 31.2 问题现象
  • 31.3 诊断分析
  • 31.4 解决方案
  • 31.5 MySQL最大连接数为214的源码解析
  • 31.6 Linux资源限制
  • 31.7 本章小结
  • 第32章 MySQL挂起诊断思路
  • 32.1 环境配置
  • 32.2 问题现象
  • 32.3 诊断分析
  • 32.4 挂起时先做什么
  • 32.5 本章小结
  • 第33章 硬件和系统调优
  • 33.1 硬件和系统调优概览
  • 33.2 CPU
  • 33.3 网络
  • 33.4 其他
  • 33.5 本章小结
  • 第34章 并发删除数据造成死锁
  • 34.1 问题现象
  • 34.2 如何阅读死锁日志
  • 34.3 表结构及操作步骤
  • 34.4 本章小结
  • 第35章 删除不存在的数据造成死锁
  • 35.1 问题现象
  • 35.2 问题分析
  • 35.3 问题扩展
  • 35.4 表结构及操作步骤
  • 35.5 小章小结
  • 第36章 插入意向锁死锁
  • 36.1 问题现象
  • 36.2 问题分析
  • 36.3 本章小结
  • 第37章 分页查询优化
  • 37.1 问题现象
  • 37.2 优化方案
  • 第38章 子查询优化——子查询转换为连接
  • 38.1 问题现象
  • 38.2 优化方案
  • 第39章 子查询优化——使用delete删除数据
  • 39.1 问题现象
  • 39.2 优化方案
  • 工具篇
  • 第40章 硬件规格常用查看命令详解
  • 40.1 通用命令
  • 40.2 CPU相关命令
  • 40.3 磁盘相关命令
  • 40.4 网卡相关命令
  • 40.5 HCA卡相关命令
  • 第41章 系统负载常用查看命令详解
  • 41.1 top
  • 41.2 dstat
  • 41.3 mpstat
  • 41.4 sar
  • 41.5 vmstat
  • 41.6 iostat
  • 41.7 free
  • 41.8 iotop
  • 41.9 iftop
  • 41.10 iperf
  • 第42章 FIO存储性能压测
  • 42.1 安装FIO
  • 42.2 测试I/O性能
  • 42.3 参数和结果详解
  • 42.4 FIO测试建议
  • 42.5 课外阅读
  • 第43章 HammerDB在线事务处理测试
  • 43.1 安装和配置HammerDB
  • 43.2 测试
  • 43.3 课外阅读
  • 第44章 sysbench数据库压测工具
  • 44.1 安装sysbench
  • 44.2 测试案例
  • 44.3 sysbench 参数详解
  • 44.4 数据库测试输出信息详解
  • 44.5 课外阅读
  • 第45章 mysqladmin和innotop工具详解
  • 45.1 mysqladmin
  • 45.2 innotop
  • 第46章 利用Prometheus+Grafana搭建炫酷的MySQL监控平台
  • 46.1 安装Prometheus
  • 46.2 安装Grafana
  • 46.3 监控节点部署
  • 第47章 Percona Toolkit常用工具详解
  • 47.1 pt-query-digest
  • 47.2 pt-ioprofile
  • 47.3 pt-index-usage
  • 47.4 pt-duplicate-key-checker
  • 47.5 pt-mysql-summary/pt-summary
  • 47.6 pt-pmp
  • 47.7 pt-stalk
  • 47.8 pt-sift
  • 第48章 MySQL主流备份工具之mysqldump详解
  • 48.1 简介
  • 48.2 原理
  • 48.3 命令行选项
  • 48.4 实战演示
  • 第49章 MySQL主流备份工具之XtraBackup详解
  • 49.1 简介
  • 49.2 原理
  • 49.3 命令行选项
  • 49.4 实战演示
  • 第50章 MySQL主流备份工具之mydumper详解
  • 50.1 简介
  • 50.2 原理
  • 50.3 命令行选项
  • 50.4 实战演示
  • 第51章 MySQL主流闪回工具详解
  • 51.1 闪回工具科普
  • 51.2 binlog2sql
  • 51.3 MyFlash
展开全部