高效能MySQL:提升MySQL性能的技术与技巧
赵利通 译
出版时间:2023年11月
页数:291
“Daniel很好地讲解了如何以最快速的方式找到解决方案,而不是在猜测中迷失方向。他还以详尽、易懂的方式介绍了InnoDB行锁。”
——Vadim Tkachenko
Percona的CTO
“ 本书独树一帜,关注最重要的方面——查询响应时间。本书是MySQL用户案头必备的宝典!”
——Frédéric Descamps
Oracle Belgium的MySQL社区管理者
目前既有介绍MySQL性能基础知识的图书,也有介绍MySQL性能高级知识的图书,但还没有介于两者之间的图书。这是因为,不介绍MySQL性能的复杂性,就很难解释MySQL性能。而本书填补了这个空白,向软件工程师讲解超出基础知识,但又远没到数据库管理员(DBA)需要知道的深层内部原理的中级MySQL知识。
Daniel Nichter将教你应用直接影响MySQL性能的最佳实践和技术,通过分析查询执行、为常用的SQL子句和表连接创建索引、优化数据访问、理解最重要的MySQL指标来提高性能,并了解复制、事务、行锁和云对MySQL性能所产生的影响。
通过学习本书,你将:
● 理解为什么查询响应时间是MySQL性能的北极星。
● 详细学习查询指标,包括聚合、报告和分析。
● 了解如何为常用的SQL子句和表连接创建有效的索引。
● 探索最重要的服务器指标,并了解它们揭示了性能的哪些信息。
● 深入了解事务和行锁,以获得深入、可操作的洞见。
● 在任意规模都能实现出色的MySQL性能。
- 前言
- 第1章 查询响应时间
- 1.1 假性能的一个真故事
- 1.2 北极星
- 1.3 查询报告
- 1.4 查询分析
- 1.5 改进查询响应时间
- 1.6 何时优化查询
- 1.7 MySQL:更快一点
- 1.8 小结
- 1.9 练习:识别慢查询
- 第2章 索引和编制索引
- 2.1 性能的红鲱鱼
- 2.2 MySQL索引:通过图示介绍
- 2.3 编制索引:如何像MySQL一样思考
- 2.4 索引降级的常见原因
- 2.5 表连接算法
- 2.6 小结
- 2.7 练习:找到重复的索引
- 第3章 数据
- 3.1 三个秘密
- 3.2 最少数据原则
- 3.3 删除或归档数据
- 3.4 小结
- 3.5 练习:审查查询的数据访问情况
- 第4章 访问模式
- 4.1 MySQL什么都不做
- 4.2 性能在极限位置变得不稳定
- 4.3 丰田和法拉利
- 4.4 数据访问模式
- 4.5 应用程序修改
- 4.6 更好、更快的硬件
- 4.7 小结
- 4.8 练习:描述访问模式
- 第5章 分片
- 5.1 为什么单个数据库不能伸缩
- 5.2 小鹅卵石而不是巨石
- 5.3 分片简介
- 5.4 替代选项
- 5.5 小结
- 5.6 练习:四年拟合
- 第6章 服务器指标
- 6.1 查询性能与服务器性能对比
- 6.2 正常且稳定:最好的数据库是枯燥的数据库
- 6.3 关键性能指示器
- 6.4 指标领域
- 6.5 光谱
- 6.6 监控和警报
- 6.7 小结
- 6.8 练习:检查关键性能指示器
- 6.9 练习:检查警报和阈值
- 第7章 复制延迟
- 7.1 基础
- 7.2 原因
- 7.3 风险:数据丢失
- 7.4 降低延迟:多线程复制
- 7.5 监控
- 7.6 恢复时间
- 7.7 小结
- 7.8 练习:监控次秒级延迟
- 第8章 事务
- 8.1 行锁
- 8.2 MVCC和回滚日志
- 8.3 历史列表长度
- 8.4 常见问题
- 8.5 报告
- 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年11月
页数:291
书号:978-7-111-73793-3
原版书书名:Efficient MySQL Performance
原版书出版商:O'Reilly Media
Daniel Nichter
Daniel Nichter目前在Square(一家金融科技公司,拥有几千个MySQL服务器)担任DBA和软件工程师,拥有超过15年的MySQL管理和使用经验以及MySQL性能优化经验。Daniel最为人熟知的地方是他在Percona就职的8年间发布的工具,其中一些仍然是事实上的标准,被世界上一些大型技术公司使用。他还是MySQL Community Award获奖者、会议发言人和多个领域的开源贡献者。