内容推荐 本书是一本系统介绍MySQL性能优化相关技术、方法及实践的实用指南。在书中,作者首先详细解释了查询响应时间;然后介绍了直接查询优化(创建和编制索引)、间接查询优化(减少数据访问和存储)等提高MySQL性能的方法,还通过讲解数据访问模式、MySQL分片的基本机制、MySQL的服务器指标、复制延迟、MySQL的事务(涉及InnoDB行锁)等知识为优化MySQL性能提供思路;之后介绍了一些常见的MySQL挑战,以及应对方法;最后讨论了在云中使用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性能高级知识的图书,但还没有介于两者之间的图书。这是因为,不介绍MySQL性能的复杂性,就很难解释MySQL性能。而本书填补了这个空白,向软件工程师讲解超出基础知识,但又远没到数据库管理员(DBA)需要知道的深层内部原理的中级MySQL知识。 Daniel Nichter将教你应用直接影响MySQL性能的最佳实践和技术,通过分析查询执行、为常用的SQL子句和表连接创建索引、优化数据访问、理解最重要的MySQL指标来提高性能,并了解复制、事务、行锁和云对MySQL性能所产生的影响。 通过学习本书,你将: ? 理解为什么查询响应时间是MySQL性能的北极星。 ? 详细学习查询指标,包括聚合、报告和分析。 ? 了解如何为常用的SQL子句和表连接创建有效的索引。 ? 探索最重要的服务器指标,并了解它们揭示了性能的哪些信息。 ? 深入了解事务和行锁,以获得深入、可操作的洞见。 ? 在任意规模都能实现出色的MySQL性能。 |