前言
MySQL性能优化是一个非常大的主题,人们通常需要花费数年时间才能掌握。《MySQL 8查询性能优化》的篇幅就证明了这一点,即使只专注与查询相关的优化主题,篇幅显然就不小了。一般而言,没有什么简单方法可以轻松地提升性能,恰恰相反,要找到相关的解决方法,你不仅需要了解MySQL内部各部分之间的关系,还需要了解相关技术栈其他部分的内容。如果你觉得单单在性能优化方面就很难入门,那么步你就跨不过去。但是,请不要对性能优化感到失望,与其他技巧一样,也可以通过实践逐步成为性能优化高手。
本期好书
[澳] 杰斯帕·威斯堡·克罗(Jesper Wisborg Krogh) 著 史跃东 杨欣 殷海英 译
作者简介
自2006年以来,Jesper Wisborg Krogh先后以SQL开发人员和数据库管理员的身份参与到MySQL数据库工作中,并且作为MySQL技术支持团队的一员,工作了8年之久。他曾在MySQL Connect和Oracle OpenWorld上多次发表演讲。除了出版相关书籍外,他也会定期撰写一些以MySQL为主题的博客文章,并为Oracle知识库撰写了约800份文档。此外,Jesper Wisborg Krogh也为MySQL中的sys库,以及MySQL 5.6等相关的OCP认证考试做出了许多贡献。在2006年转向MySQL及软件开发之前,Jesper Wisborg Krogh获得计算化学的博士学位。他现在居住在澳大利亚的悉尼,平时喜欢在户外散步、旅行以及阅读等。其研究领域涉及MySQL集群、MySQL Enterprise Backup(MEB)、性能优化,以及performance库和sys库等。
内容简介
众所周知,MySQL以对各种存储引擎的支持而闻名。但除了对内部临时表相关的探讨外,《MySQL 8查询性能优化》只介绍InnoDB存储引擎。而对于MySQL的版本,则只考虑MySQL 8。也就是说,《MySQL 8查询性能优化》中的大部分讨论内容虽然也适用于旧版本的MySQL,但通常也只是为了说明MySQL 8中的新特性与旧版本的不同之处罢了。
《MySQL 8查询性能优化》面向的读者
《MySQL 8查询性能优化》是为那些具有丰富的MySQL数据库使用经验,并希望将知识扩展到查询性能优化领域的开发人员和数据库管理员而编写的。当然,在阅读《MySQL 8查询性能优化》之前,你不需要具备性能优化的相关经验。在撰写《MySQL 8查询性能优化》的过程中,作者尝试添加了尽可能多的示例代码及其输出结果。当然,有些示例很短,有些则很长。但无论哪种情况,作者都希望读者能够跟上并重现这些示例的结果。同时请记住,由于实际环境的差异(当然,这种差异和索引统计信息一样明确),示例结果可能会取决于在示例之前,相关的表和数据的获取方式。换句话说,即使读者完成了所有工作,得到的结果仍然可能与《MySQL 8查询性能优化》中的结果不同。尤其是涉及索引统计信息以及与计时等相关的数字时。读者可扫封底的二维码,下载《MySQL 8查询性能优化》的示例代码。
《MySQL 8查询性能优化》结构
《MySQL 8查询性能优化》分为6部分,共计27章。在撰写《MySQL 8查询性能优化》时,作者试图让每章的内容都保持相对独立,以便读者将《MySQL 8查询性能优化》用作参考书。当然,这样做的缺点之一是有时会重复出现某些内容。例如第18章介绍了锁的理论方面的一些知识,以及如何对锁进行监控;而第22章则提供锁争用的一些示例。因此,第22章很自然会借鉴第18章中的部分信息,因此出现了一些内容上的重复。这是一个有意识的行为,作者希望各位读者在阅读《MySQL 8查询性能优化》的过程中可以减少翻页的次数,尽快找到所需内容。在阅读过程中,《MySQL 8查询性能优化》的6部分将引导你逐步完成性能优化主题的相关探讨。我们先从一些基本的背景知识开始,然后给出面向问题的解决方案。第Ⅰ部分将探讨相关的方法论、基准以及测试数据。第Ⅱ部分重点介绍各种信息来源,如performance库等。第Ⅲ部分介绍《MySQL 8查询性能优化》将用到的各种工具,如MySQL shell。第Ⅳ部分则提供后面两部分将用到的理论知识。第Ⅴ部分侧重分析查询、事务以及锁。第Ⅵ部分则探讨如何通过配置、查询优化、复制以及缓存等技术来提升性能。某些情况下,有些内容的编排可能较特殊,例如,所有关于复制的内容都包含在单独一章中(即第26章)。