MySQL 8.0 官方文档 第八章 优化(一)—— 优化概述

MySQL 8.0 第八章 优化


本章介绍如何优化MySQL性能并提供示例。优化包括在多个级别上的配置、调优和度量性能。根据您的工作角色(开发人员、DBA或者是两者的结合),您可以在单个SQL语句、整个应用程序、单个数据库服务器或多个联网数据库服务器的级别上进行优化。有时,您可以积极主动地提前规划性能,而有时,您可能会在出现问题后对配置或代码问题进行故障排除。优化CPU和内存使用也可以提高可伸缩性,允许数据库在不降低速度的情况下处理更多的负载。

8.1 优化概述

数据库性能取决于数据库级别上的几个因素,例如表的设计、查询语句的编写和配置参数的设置。这些软件结构会导致在硬件级别上执行CPU和IO操作,您必须将这些操作最小化并尽可能提高效率。在研究数据库性能时,首先要学习软件方面的高级规则和准则,并使用挂钟时间来衡量性能。当您成为专家后,您将学习更多的关于内部发生的事件,并开始测量诸如CPU周期和IO操作之类的事件。

普通用户的目标是在现有的软件和硬件配置下获得最佳的数据库性能。高级用户寻找机会来改进MySQL软件本身,或者开发自己的存储引擎和硬件设备来扩展MySQL的生态系统。

在数据库级别上优化

使数据库应用程序能快速处理的最重要因素是其基本设计:

  • 表的结构是否适当?尤其是,字段是否具有正确的数据类型,并且每个表是否有适当的适合业务类型的字段?例如,执行频繁更新的应用程序通常是表很多,每个表的字段较少,而进行大量数据分析的应用程序通常是表较少,每个表的字段很多。

  • 是否有适当的索引来提高查询效率?

  • 您是否为每个表使用了适当的存储引擎,并利用了您选择的每个存储引擎的优势和特性?特别是,选择事务性存储引擎(如InnoDB)或非事务性的存储引擎(如MyISAM)对于性能和可伸缩性非常重要。

    备注:
    InnoDB是新建表的默认存储引擎。实际上,先进的InnoDB性能特性意味着InnoDB表的性能通常优于更简单的MyISAM表,特别是对于繁忙的数据库。

  • 每个表是否使用了适当的行格式?此选择还取决于表使用的存储引擎。特别是,压缩表使用更少的磁盘空间,因此需要更少的磁盘IO来读写数据。压缩功能可使用于InnoDB表的各种工作负荷,也可用于只读的MyISAM表。

  • 应用程序是否使用了适当的锁策略?例如,在可能的情况下允许共享访问,以便数据库操作可以并发运行;并在适当的情况下请求独占访问,以便关键操作获得最高优先级。同样,存储引擎的选择也很重要。InnoDB存储引擎可以在不需要您的参与下处理大部分的锁问题,从而可以在数据库中实现更好的并发性,并减少代码的实验和调优量。

  • 所有用于缓存的内存区域大小是否正确?也就是说,大到足以容纳频繁访问的数据,但不能大到使物理内存过载并导致分页。要配置的主内存区域是InnoDB缓冲池、MyISAM的键缓存和MySQL查询缓存。

在硬件级别上的优化

随着数据库变得越来越繁忙,任何数据库应用程序最终都会遇到硬件限制。DBA必须评估是否有可能调整应用程序或重新配置服务器以避免这些瓶颈,或者是否需要更多的硬件资源。系统瓶颈通常来自以下来源:

  • 磁盘查找。从磁盘上查找一小段数据需要时间。对于现代磁盘,查找数据的平均时间通常低于10毫秒,因此理论上我们可以每秒搜索100次。这一时间随着新的磁盘出现缓慢提高,并且很难针对单个盘进行优化。优化寻道时间的方法是将数据分发到多个磁盘上。
  • 磁盘读写。当磁盘位于正确的位置时,我们需要读取或写入数据。对于现代磁盘,一个磁盘的吞吐量至少为10~20MB/s。这比查找更容易优化,因为您可以并行读取多个磁盘。
  • CPU周期。当数据在主内存中时,我们必须对它进行处理才能得到结果。与内存大小相比,大表的数量太多是最常见的限制因素。但是对于小表而言,速度通常不是问题。
  • 内存带宽。当CPU需要的数据超过CPU缓存的容量时,主存带宽就成了瓶颈。对于大多数系统来说,这是一个不常见的瓶颈,但需要注意。

平衡可移植性和性能

要在可移植的MySQL程序中使用面向性能的SQL扩展,您可以使用/*! * /注释分隔符将MySQL特定的关键字进行包裹。其他SQL服务器忽略注释后的关键字。有关写注释的信息,请参见9.7节“注释”。

下一章 MySQL 8.0 官方文档 第八章 优化(二)——优化 SELECT 语句

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL官方文档MySQL数据库管理系统的官方参考指南,提供了全面而详细的文档资源,旨在帮助用户了解和使用MySQL数据库。MySQL 8.0官方文档中也提供了中文版,方便中国用户阅读和查找所需的信息。 MySQL 8.0官方文档中文版内容包括了MySQL数据库的各个方面,涵盖了安装、配置、使用、维护和开发等各个方面的知识。文档以清晰的结构组织,使用简单明了的语言描述概念和操作步骤,易于理解和学习。 该中文版文档包括了以下主要内容: 1. 概述:介绍MySQL数据库和其特点,以及MySQL 8.0的新功能和改进。 2. 安装和配置:讲解了如何下载、安装和配置MySQL数据库的步骤和指南。 3. 使用MySQL:包括了数据库的基本操作,如创建和管理表、插入和查询数据、更新和删除数据等。 4. 数据库管理:介绍了如何管理MySQL数据库,包括用户和权限管理、备份和还原数据库、性能优化等。 5. 高级主题:涵盖了高级技术主题,如存储过程、触发器、视图、复制和集群等。 6. 开发者指南:提供了MySQL数据库的开发者指南,包括了MySQL语法、数据类型和连接器等。 通过阅读MySQL 8.0官方文档中文版,用户可以轻松学习和掌握MySQL数据库,从基础操作到高级技术都可以找到相应的信息。并且,文档还提供了示例代码和实用的技巧,帮助用户更好地使用和优化MySQL数据库。 总的来说,MySQL 8.0官方文档中文版是MySQL数据库的权威参考,对于想要学习和使用MySQL的用户来说,是不可或缺的宝贵资源。 ### 回答2: MySQL官方文档MySQL数据库管理系统的官方技术文档,提供了全面的关于MySQL 8.0版本的信息和指导。 MySQL 8.0官方文档中文版主要包括以下内容: 1. 介绍和安装:文档提供了MySQL 8.0的简介,包括其特性和优势。同时也提供了安装MySQL数据库的详细步骤和注意事项。 2. 数据类型和操作:文档详细介绍了MySQL 8.0支持的各种数据类型,以及这些数据类型的操作和限制。无论是整型、浮点型、日期时间型还是字符串类型,都有详细的解释和示例。 3. 查询语言和操作:文档详细介绍了MySQL 8.0的查询语言(SQL)的语法和用法,包括各种查询语句的编写和执行。同时也介绍了常用的数据操作语句,如插入、更新、删除等。 4. 数据库管理和安全:文档提供了关于MySQL 8.0数据库管理的指南,包括创建和管理数据库、用户和权限的操作。此外,还介绍了如何保护数据库的安全,如使用SSL加密、访问控制等。 5. 性能优化和高可用性:文档提供了关于MySQL 8.0性能优化和高可用性的指导,包括查询优化、索引设计、存储引擎选择等方面的内容。同时也介绍了MySQL复制和集群等高可用性解决方案。 6. 开发接口和工具:文档提供了关于MySQL 8.0的开发接口和工具的介绍和用法,如MySQL Connector、MySQL Workbench等。此外,也提供了一些常用的开发示例和最佳实践。 总之,MySQL 8.0官方文档中文版是MySQL数据库管理系统的权威指南,提供了全面的相关信息和指导。无论是初学者还是有经验的开发者,都可以通过阅读该文档来了解和使用MySQL 8.0。 ### 回答3: MySQL 8.0官方文档已经提供了中文版。它是MySQL数据库的权威参考文档,提供了完整的MySQL 8.0版本的文档信息。中文版官方文档的发布使得中文用户能够更方便地了解和使用MySQL 8.0MySQL 8.0官方文档中文版涵盖了广泛的主题,包括基本概念、安装和升级、配置和管理、备份和恢复、性能优化等。该文档提供了详细的指南和示例,使用户能够更好地理解和使用MySQL 8.0的各种功能和工具。 MySQL 8.0官方文档中的中文翻译准确而清晰,使用简洁明了的语言,使读者能够轻松掌握MySQL 8.0的各个方面。无论是初学者还是有经验的用户,都能够通过这份文档更好地理解和使用MySQL 8.0,从而更高效地管理和操作数据库。 通过阅读MySQL 8.0官方文档的中文版,用户可以学习如何安装和配置MySQL服务器,了解数据库的基本操作和管理,掌握SQL查询语言的基本语法和高级技巧,学习如何进行性能优化和故障排除等。 总而言之,MySQL 8.0官方文档中文版是一份非常有价值的资源,能够帮助中文用户更好地学习和使用MySQL 8.0,实现更高效的数据库管理和开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值