MySQL 是一个流行的开源关联式资料库管理站群系统,知道如何优化它是必不可少的。缓慢的资料库效能会严重影响您的网站访问速度和多用户体验感; 一个设计不当的 SQL 查询可能会产生很大的影响。
优化 MySQL 资料库不是一个简单的过程,但它对于维护应用程式效能和服务交付至关重要。在本文中,我们将介绍如何提高 MySQL 资料库效能的一些技巧。
  平衡四大主要硬件资源
  硬碟
如果您使用的是传统硬碟驱动器 (HDD),您可以升级到固态驱动器 (SSD) 以提高效能。
可以使用类似的工具 iotop 或 SAR 从 SYSSTAT 包来监控您的磁碟输入/输出率。如果磁碟使用率远高于其他资源的使用率,请考虑新增更多硬碟或升级到更快的硬碟。
  CPU
CPU 通常被认为是衡量站群系统速度的指标。使用 Linux 命令详细了解您的资源是如何使用的。注意 MySQL 程序及其所需的处理器使用百分比。推荐阅读:《浅议 MySQL 资料库的强大功用》
CPU 升级成本比较高,但如果您的 CPU 是一个问题,建议您可以选择租用站群服务器升级 CPU 以减少您的成本。
提升网站速度之 MySQL 资料库优化
内存
内存表示 MySQL 资料库储存站群服务器中的 RAM 总量。您可以调整内存快取 (稍后会详细介绍) 以提高效能。如果您没有足够的内存,或者如果现有的内存没有优化,则最终可能会损害效能而不是提高效能。
与其他问题一样,如果您的站群服务器内存不足,您可以通过新增更多内存进行升级。如果内存不足,您的站群服务器将快取资料储存 (如硬碟驱动器) 以充当内存。资料库快取会降低您的效能。
网络
网络对您的网站至关重要,在租用主机时选择合适的宽频也是很重要的。
网络过载会导致延迟、丢包,甚至站群服务器中断。确保您有足够的网络带宽来容纳正常级别的资料库流量。
  MySQL 软件效能调优
  避免在 SELECT 子句中使用*
在资料库中最常用的语句是查询语句,避免在使用查询语句时,查询全表,在查询时不要使用 “SELECT *”,而是始终在 SELECT 子句中指定表以提高 MySQL 效能。因为不必要的表会导致资料库的额外负载,降低其效能以及整个站群系统过程。
避免在查询资料的开头使用万用字元 (%)
例如 LIKE’%abc’ 导致全表扫描。
SELECT * FROM TABLE1 WHERE COL1 LIKE ‘%ABC’
在大多数情况下,这种万用字元使用会带来主要的效能限制。
  尽量使用内连线,而不是外连线—-JOIN, WHERE, UNION, DISTINCT
仅在必要时使用外连线。不必要地使用它不仅会限制资料库效能,还会限制 MySQL 查询优化选项,导致 SQL 语句执行速度变慢。
在适当的地方使用索引查询,例如:
SELECT … WHERE
  适当使用 ORDER BY
ORDER BY 表示式按指定的列对结果进行排序。它可用于一次按两列排序。这些应该以相同的顺序排序,升序或降序。
如果您尝试以不同的顺序对不同的列进行排序,则会降低效能。您可以将其与索引结合使用以加快排序。
  GROUP BY 而不是 SELECT DISTINCT
SELECT DISTINCT 试图摆脱重复值的查询时就派上用场了。但是,该语句需要大量的处理能力。
尽可能避免使用 SELECT DISTINCT,因为它非常低效且有时令人困惑。
  Mysql 查询快取
衡量效能的最重要方面之一是快取内容。 MySQL 提供资料库查询快取,它快取 SELECT 语句文字和检索到的结果。因此,每当您建立重复资料库时,您都会呼叫 MySQL 查询快取,它会响应您并显示快取中的结果,并且不会重复解析呼叫。通过这种方式,您可以最大化 MySQL 快取优化过程。推荐阅读:《WP 虚拟主机 cPanel 如何汇入 Mysql 资料库》
要设定 MySQL 查询快取,您必须向 MySQL 新增一些设定。首先,您必须使用以下命令检查查询快取是否可用:
mysql> SHOW VARIABLES LIKE ‘have_query_cache’ ;
使用命令后会显示结果,YES 意味著 MySQL 快取工作正常。
Variable_name | Value |
| have_query_cache | YES |
现在,您可以设定 MySQL 查询快取大小和型别。请记住,最小预设大小为 40KB 。最大大小可以是 32MB 。您可以使用以下命令设定 MySQL query_cache_size:
mysql> SET GLOBAL query_cache_size = 40000;
查询快取型别可以决定所有连线的行为。您还可以禁用查询快取,例如:
mysql> SET SESSION query_cache_type = OFF;
同时,您也可以选择启用 Redis 快取进行提速
提升网站速度的一个重要方面是优化 MySQL 资料库。通过采取上述步骤,您可以确保您的 MySQL 资料库效能得到优化,从而使您能够更高效地完成工作并确保您的业务服务和应用程式保持可用。推荐相关阅读:《WordPress 站群后台 Mysql 上传资料库过程》