水木
水木
发布于 2024-08-30 / 19 阅读
0

MySQL 8查询性能优化

链接: https://pan.baidu.com/s/1sOJOmuFHN1PKCgWp8Ac37g?pwd=ttbh 提取码: ttbh

出版社: 清华大学出版社
ISBN:9787302583912
版次:1
商品编码:13440284
品牌:其他品牌
包装:平装
开本:16开
出版时间:2021-08-01
用纸:胶版纸
页数:580
字数:999000
正文语种:中文
编辑推荐

性能不佳的查询将影响用户的体验,导致业务收入下降;本书将帮助你在日常工作中更好地识别、分析和改进此类查询。本书详述涉及多个步骤的处理过程,包括监控查询执行时间、识别需要优化的查询、分析当前的性能表现以及进行优化等,还介绍相关的数据源和工具,帮助你更快地提交结果,降低系统

开销。

  《MySQL 8查询性能优化》描述多种可提升查询性能的策略,讲述如何使用传统的EXPLAIN命令以及新的EXPLAIN ANALYZE工具来分析查询、如何使用Visual Explain功能来获得执行计划的可视化视图、如何用直方图获得关于“桶”数据的分布信息。此外,将介绍锁以及解决锁问题的相关知识;讨论MySQL优化器的工作原理,包括新的哈希联接算法,以及在必要时改变优化器行为来缩短查询的执行时间。通过本书,你将掌握必备技术,能用合适工具提高用户满意度,从公司的计算资源中获取更大价值。




内容简介

主要内容
● 监控性能,找出效果不佳的查询
● 选取要优化的查询,**限度地提高收益
● 使用EXPLAIN ANALYZE和Visual Explain等工具来分析查询
● 借助多种策略改进慢查询
● 正确使用索引和直方图,创建快速的执行计划
● 了解并分析锁,从而解决争用问题,提升系统吞吐量

作者简介

自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查询性能优化》的篇幅就证明了这一点,即使只专注与查询相关的优化主题,篇幅显然就不小了。一般而言,没有什么简单方法可以轻松地提升性能,恰恰相反,要找到相关的解决方法,你不仅需要了解MySQL内部各部分之间的关系,还需要了解相关技术栈其他部分的内容。如果你觉得单单在性能优化方面就很难入门,那么第一步你就跨不过去。但是,请不要对性能优化感到失望,与其他技巧一样,也可以通过实践逐步成为性能优化高手。


撰写《MySQL 8查询性能优化》的目的在于,使你能在MySQL性能优化方面登堂入室,从而熟练掌握如何提升在MySQL实例上运行的那些查询的性能。如前所述,这没有什么简单秘方,最佳办法就是学习并了解性能优化过程中涉及的各个组件。这也是《MySQL 8查询性能优化》的主要内容,当然,我们也提供了如何找到相关信息,以及如何执行一些常见任务的示例。另外,《MySQL 8查询性能优化》的内容仅限于对MySQL本身的探讨,因此关于操作系统、文件系统以及硬件级别的内容,就相对有限了。

众所周知,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章)。

第Ⅰ部分 入门

第Ⅰ部分介绍MySQL查询性能优化的相关概念,包括一些高级注意事项等。其中一些并非MySQL所独有(不过也是在MySQL上下文中进行探讨的)。第Ⅰ部分包含4章。

第1章“MySQL性能优化”——该章涵盖MySQL性能优化的一些高级概念,例如考虑整个堆栈和查询生命周期的重要性等。

第2章“查询优化方法论”——以有效方式解决性能问题至关重要。该章介绍有效工作的方法论,并强调积极工作的重要性。

第3章“使用Sysbench进行基准测试”——通常,我们需要使用基准测试来检验更改效果。该章将