高效能MySQL:提升MySQL性能的技术与技巧

高效能MySQL:提升MySQL性能的技术与技巧

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

一本系统介绍MySQL性能优化相关技术、方法及实践的实用指南。

内容简介

本书中,作者首先详细解释了查询响应时间;然后介绍了直接查询优化(创建和编制索引)、间接查询优化(减少数据访问和存储)等提高MySQL性能的方法,还通过讲解数据访问模式、MySQL分片的基本机制、MySQL的服务器指标、复制延迟、MySQL的事务(涉及InnoDB行锁)等知识为优化MySQL性能提供思路;之后介绍了一些常见的MySQL挑战,以及应对方法;最后讨论了在云中使用MySQL时需要知道的知识,拓展了读者的思维。

作者简介

作者丹尼尔·尼希特,目前在Square(一家金融科技公司,拥有几千个MySQL服务器)担任DBA和软件工程师,拥有超过15年的MySQL管理和使用经验以及MySQL性能优化经验。

章节目录

版权信息

O'Reilly Media, Inc.介绍

业界评论

前言

第1章 查询响应时间

1.1 假性能的一个真故事

1.2 北极星

1.3 查询报告

1.3.1 来源

1.3.2 聚合

1.3.3 报告

1.4 查询分析

1.4.1 查询指标

1.4.2 元数据和应用程序

1.4.3 相对值

1.4.4 平均值、百分位和最大值

1.5 改进查询响应时间

1.5.1 直接查询优化

1.5.2 间接查询优化

1.6 何时优化查询

1.6.1 性能影响客户

1.6.2 代码修改之前和之后

1.6.3 一月一次

1.7 MySQL:更快一点

1.8 小结

1.9 练习:识别慢查询

第2章 索引和编制索引

2.1 性能的红鲱鱼

2.1.1 更好、更快的硬件

2.1.2 MySQL调优

2.2 MySQL索引:通过图示介绍

2.2.1 InnoDB的表是索引

2.2.2 表访问方法

2.2.3 最左前缀要求

2.2.4 EXPLAIN:查询执行计划

2.2.5 WHERE

2.2.6 GROUP BY

2.2.7 ORDER BY

2.2.8 覆盖索引

2.2.9 连接表

2.3 编制索引:如何像MySQL一样思考

2.3.1 了解查询

2.3.2 使用EXPLAIN帮助理解

2.3.3 优化查询

2.3.4 部署和验证

2.4 索引降级的常见原因

2.4.1 查询改变

2.4.2 过多、重复和未使用

2.4.3 极端选择性

2.4.4 选择错误的索引

2.5 表连接算法

2.6 小结

2.7 练习:找到重复的索引

第3章 数据

3.1 三个秘密

3.1.1 索引可能没有帮助

3.1.2 数据越少越好

3.1.3 QPS越低越好

3.2 最少数据原则

3.2.1 数据访问

3.2.2 数据存储

3.3 删除或归档数据

3.3.1 工具

3.3.2 批大小

3.3.3 行锁争用

3.3.4 空间和时间

3.3.5 二进制日志悖论

3.4 小结

3.5 练习:审查查询的数据访问情况

第4章 访问模式

4.1 MySQL什么都不做

4.2 性能在极限位置变得不稳定

4.3 丰田和法拉利

4.4 数据访问模式

4.4.1 读/写

4.4.2 吞吐量

4.4.3 数据年龄

4.4.4 数据模型

4.4.5 事务隔离

4.4.6 读一致性

4.4.7 并发性

4.4.8 行访问

4.4.9 结果集

4.5 应用程序修改

4.5.1 审查代码

4.5.2 转移读取

4.5.3 将写操作加入队列

4.5.4 将数据分区

4.5.5 不要使用MySQL

4.6 更好、更快的硬件

4.7 小结

4.8 练习:描述访问模式

第5章 分片

5.1 为什么单个数据库不能伸缩

5.1.1 应用程序的工作负载

5.1.2 基准是人为设计的

5.1.3 写操作

5.1.4 模式修改

5.1.5 操作

5.2 小鹅卵石而不是巨石

5.3 分片简介

5.3.1 分片键

5.3.2 策略

5.3.3 挑战

5.4 替代选项

5.4.1 NewSQL

5.4.2 中间件

5.4.3 微服务

5.4.4 不要使用MySQL

5.5 小结

5.6 练习:四年拟合

第6章 服务器指标

6.1 查询性能与服务器性能对比

6.2 正常且稳定:最好的数据库是枯燥的数据库

6.3 关键性能指示器

6.4 指标领域

6.4.1 响应时间

6.4.2 比率

6.4.3 使用率

6.4.4 等待

6.4.5 错误率

6.4.6 访问模式

6.4.7 内部指标

6.5 光谱

6.5.1 查询响应时间

6.5.2 错误率

6.5.3 查询

6.5.4 线程和连接

6.5.5 临时对象

6.5.6 预处理语句

6.5.7 不好的SELECT

6.5.8 网络吞吐量

6.5.9 复制

6.5.10 数据大小

6.5.11 InnoDB

6.6 监控和警报

6.6.1 解析度

6.6.2 徒劳的寻找(阈值)

6.6.3 根据用户体验和客观极限值发出警报

6.6.4 因果关系

6.7 小结

6.8 练习:检查关键性能指示器

6.9 练习:检查警报和阈值

第7章 复制延迟

7.1 基础

7.1.1 源到副本复制

7.1.2 二进制日志事件

7.1.3 MySQL复制延迟

7.2 原因

7.2.1 事务吞吐量

7.2.2 故障后重建

7.2.3 网络问题

7.3 风险:数据丢失

7.3.1 异步复制

7.3.2 半同步复制

7.4 降低延迟:多线程复制

7.5 监控

7.6 恢复时间

7.7 小结

7.8 练习:监控次秒级延迟

第8章 事务

8.1 行锁

8.1.1 记录锁和临键锁

8.1.2 间隙锁

8.1.3 二级索引

8.1.4 插入意向锁

8.2 MVCC和回滚日志

8.3 历史列表长度

8.4 常见问题

8.4.1 大事务

8.4.2 长时间运行的事务

8.4.3 失速的事务

8.4.4 丢弃的事务

8.5 报告

8.5.1 活跃事务:最新

8.5.2 活跃事务:汇总

8.5.3 活跃事务:历史

8.5.4 已提交事务:汇总

8.6 小结

8.7 练习:对历史列表长度发出警报

8.8 练习:检查行锁

第9章 其他挑战

9.1 脑裂是最大的风险

9.2 数据漂移真实存在但不可见

9.3 不要信任ORM

9.4 模式总会改变

9.5 MySQL扩展了标准SQL

9.6 吵闹的邻居

9.7 应用程序不会优雅地失败

9.8 高性能MySQL很难

9.9 练习:识别阻止发生脑裂的防护措施

9.10 练习:检查数据漂移

9.11 练习:混沌

第10章 云中的MySQL

10.1 兼容性

10.2 管理

10.3 网络和存储时延

10.4 性能就是金钱

10.5 小结

10.6 练习:在云中试用MySQL

作者简介

封面简介

高效能MySQL:提升MySQL性能的技术与技巧是2023年由机械工业出版社出版,作者[美] 丹尼尔·尼希特。

得书感谢您对《高效能MySQL:提升MySQL性能的技术与技巧》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
MySQL从入门到精通 电子书
本书适合任何想学习MySQL的读者,无论您是否从事计算机相关行业,是否接触过MySQL,均可通过学习快速掌握MySQL的开发方法和技巧。
MySQL数据库管理实战 电子书
MySQL数据库管理从入门到实战,零基础读者上手MySQL的理想读物。
MySQL数据库应用与管理(第2版) 电子书
本教材循序渐进地讲解了MySQL的理论知识和基本操作。
MySQL数据库管理与开发(慕课版) 电子书
本书系统全面地介绍了有关MySQL数据库应用开发所涉及的各类知识。全书共分13章,内容包括数据库设计概述、MySQL概述、MySQL数据库管理、MySQL表结构管理、表记录的更新操作、表记录的检索、视图、触发器、存储过程与存储函数、备份与恢复、MySQL性能优化、事务与锁机制、综合开发案例——图书馆管理系统。本书**后还附有12个实验。全书每章内容都与实例紧密结合,有助于学生理解知识、应用知识,实
MySQL程序员面试笔试宝典 电子书
覆盖近几年程序员面试笔试中超过98%的MySQL高频知识点。