MySQL 服务器实施调优的3方案

数据库 MySQL
我们今天主要和大家分享的是MySQL 服务器实施调优的3方案,以下就是文章的主要内容的描述,望你在浏览之后会有所收获。

此文章主要介绍的是对MySQL 服务器进行调优的实际操作方案,对MySQL 服务器实行优化在实际操作中有时是必然的,所以今天我们就针对这一情况给出了三个不同的优化方案,望你会有所收获。

如今,开发人员不断地开发和部署使用 LAMP(Linux®、apache(Unix平台***的WEB服务器平台)、MySQL(和PHP搭配之***组合) 和 PHP/Perl)架构的应用程序。但是,服务器管理员常常对应用程序本身没有什么控制能力,因为应用程序是别人编写的。

这份 共三部分的系列文章 将讨论许多服务器配置问题,这些配置会影响应用程序的性能。本文是本系列文章的第三部分,也是***一部分,将重点讨论为实现***效率而对数据库层进行的调 优。 关于 MySQL(和PHP搭配之***组合) 调优

有 3 种方法可以加快 MySQL 服务器的运行速度,效率从低到高依次为:

替换有问题的硬件。 对 MySQL(和PHP搭配之***组合) 进程的设置进行调优。 对查询进行优化。

替换有问题的硬件通常是我们的***考虑,主要原因是数据库会占用大量资源。不过这种解决方案也就仅限于此了。实际上,您通常可以让中央处理器(CPU)或磁盘速度加倍,也可以让内存增大 4 到 8 倍。

第二种方法是对 MySQL(和PHP搭配之***组合) 服务器(也称为 MySQL(和PHP搭配之***组合)d)进行调优。对这个进程进行调优意味着适当地分配内存,并让 MySQL(和PHP搭配之***组合)d 了解将会承受何种类型的负载。加快磁盘运行速度不如减少所需的磁盘访问次数。类似地,确保 MySQL(和PHP搭配之***组合) 进程正确操作就意味着它花费在服务查询上的时间要多于花费在处理后台任务(如处理临时磁盘表或打开和关闭文件)上的时间。对 MySQL(和PHP搭配之***组合)d 进行调优是本文的重点。

***的方法是确保查询已经进行了优化。这意味着对表应用了适当的索引,查询是按照可以充分利用 MySQL(和PHP搭配之***组合) 功能的方式来编写的。尽管本文并没有包含查询调优方面的内容(很多着作中已经针对这个主题进行了探讨),不过它会配置 MySQL(和PHP搭配之***组合)d 来报告可能需要进行调优的查询。

虽然已经为这些任务指派了次序,但是仍然要注意硬件和 MySQL(和PHP搭配之***组合)d 的设置以利于适当地调优查询。机器速度慢也就罢了,我曾经见过速度很快的机器在运行设计良好的查询时由于负载过重而失败,因为 MySQL(和PHP搭配之***组合)d 被大量繁忙的工作所占用而不能服务查询。

记录慢速查询

在一个 SQL 服务器中,数据表都是保存在磁盘上的。索引为MySQL 服务器提供了一种在表中查找特定数据行的方法,而不用搜索整个表。当必须要搜索整个表时,就称为表扫描。通常来说,您可能只希望获得表中数据的一个子集,因此全表扫描会浪费大量的磁盘 I/O,因此也就会浪费大量时间。当必须对数据进行连接时,这个问题就更加复杂了,因为必须要对连接两端的多行数据进行比较。

当然,表扫描并不总是会带来问题;有时读取整个表反而会比从中挑选出一部分数据更加有效(MySQL 服务器进程中查询规划器用来作出这些决定)。如果索引的使 用效率很低,或者根本就不能使用索引,则会减慢查询速度,而且随着服务器上的负载和表大小的增加,这个问题会变得更加显着。执行时间超过给定时间范围的查 询就称为慢速查询。

您可以配置 MySQL(和PHP搭配之***组合)d 将这些慢速查询记录到适当命名的慢速查询日志中。管理员然后会查看这个日志来帮助他们确定应用程序中有哪些部分需要进一步调查。清单 1 给出了要启用慢速查询日志需要在 my.cnf 中所做的配置。

清单 1. 启用 MySQL(和PHP搭配之***组合) 慢速查询日志

  1. [MySQL(和PHP搭配之***组合)d];  
  2. enable the slow query log, default 10 secondslog-slow-queries;   
  3. log queries taking longer than 5 secondslong_query_time = 5;   
  4. log queries that don't use indexes even if they take less than long_query_time;   
  5. MySQL(和PHP搭配之***组合)   
  6. 4.1 and newer onlylog-queries-not-using-indexes   

这三个设置一起使用,可以记录执行时间超过 5 秒和没有使用索引的查询。请注意有关 log-queries-not-using-indexes 的警告:您必须使用 MySQL(和PHP搭配之***组合) 4.1 或更高版本。慢速查询日志都保存在 MySQL(和PHP搭配之***组合) 数据目录中,名为 hostname-slow.log。如果希望使用一个不同的名字或路径,可以在 my.cnf 中使用 log-slow-queries = /new/path/to/file 实现此目的。

阅读慢速查询日志***是通过 MySQL(和PHP搭配之***组合)dumpslow 命令进行。指定日志文件的路径,就可以看到一个慢速查询的排序后的列表,并且还显示了它们在日志文件中出现的次数。一个非常有用的特性是 MySQL(和PHP搭配之***组合)dumpslow 在比较结果之前,会删除任何用户指定的数据,因此对同一个查询的不同调用被计为一次;这可以帮助找出需要工作量最多的查询。

以上的相关内容就是对对MySQL 服务器进行调优的介绍,望你能有所收获。

【编辑推荐】

  1. 分享MySQL修改数据的实际操作流程
  2. MySQL数据库服务器的正确登录描述
  3. MySQL数据库服务器的正确登录描述
  4. 开发中的MySQL参照完整性简介
  5. MySQL root 密码忘记的破解
责任编辑:佚名 来源: 互联网
相关推荐

2010-05-19 17:44:09

2011-04-07 16:15:31

MySQL服务器调优

2010-06-01 16:26:43

MySQL无法远程

2010-05-13 10:47:44

MySQL数据库查询

2010-06-11 12:32:57

MySQL数据库查询

2010-06-17 09:15:02

MySQL数据库查询

2012-06-01 09:54:03

2020-10-16 16:40:26

Linux高并发命令

2012-03-09 09:51:35

2010-05-27 18:36:13

配置MySQL

2010-05-13 09:49:08

MySQL调优

2010-06-01 17:14:28

2020-05-13 10:23:30

离岸供应商IT服务首席信息官

2022-01-28 15:44:00

Linux服务器技巧

2019-10-14 15:48:32

php.iniPHP脚本

2020-05-26 22:48:09

服务器部署调优

2010-05-21 13:48:36

MySQL数据库

2011-03-14 13:51:21

LAMPMySQL

2011-03-10 14:40:54

LAMPMysql

2023-03-07 21:41:23

JVM内存服务器
点赞
收藏

51CTO技术栈公众号