Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  Optimization  /  Optimization Overview

10.1 优化概述

数据库性能取决于多个数据库级别的因素,如表、查询和配置设置。这些软件构造在硬件级别上导致CPU和I/O操作,您必须尽量减少和提高这些操作的效率。在优化数据库性能时,您首先学习软件方面的高级规则和指南,并使用墙上时间测量性能。随着您变得更加专业,您将学习更多关于内部发生的事情,并开始测量诸如CPU周期和I/O操作等指标。

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

在数据库级别优化

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

在硬件级别优化

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

  • 磁盘寻道。磁盘需要时间来找到一 piece of 数据。使用现代磁盘,平均时间通常低于10ms,因此我们可以理论上每秒执行大约100次寻道。这个时间随着新磁盘的出现而慢慢改善,并且很难为单个表进行优化。优化寻道时间的方法是将数据分布到多个磁盘上。

  • 磁盘读取和写入。当磁盘处于正确位置时,我们需要读取或写入数据。使用现代磁盘,每个磁盘至少可以提供10-20MB/s的吞吐量。这比寻道时间更容易优化,因为您可以从多个磁盘并行读取。

  • CPU 周期。当数据在主内存中时,我们必须处理它以获得结果。与内存量相比,大的表格是最常见的限制因素。但是对于小表格,速度通常不是问题。

  • 内存带宽。当 CPU 需要更多数据时,无法容纳在 CPU 缓存中,主内存带宽就会成为瓶颈。这是大多数系统中不常见的瓶颈,但需要注意。

平衡可移植性和性能

要在可移植的 MySQL 程序中使用性能导向的 SQL 扩展,可以将 MySQL 特定的关键字包装在带有 /*! */ 注释分隔符的语句中。其他 SQL 服务器将忽略注释的关键字。有关编写注释的信息,请参阅 第 11.7 节,“注释”