当前位置:首页 > 系统运维 > 正文内容

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

a8116255316年前 (2010-06-11)系统运维15

此文章主要介绍的是对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搭配之更佳组合) 慢速查询日志

[MySQL(和PHP搭配之更佳组合)d];  enable the slow query log, default 10 secondslog-slow-queries;   log queries taking longer than 5 secondslong_query_time = 5;   log queries that don't use indexes even if they take less than long_query_time;   MySQL(和PHP搭配之更佳组合)   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 服务器进行调优的介绍,不知道各位对MySQL的认识是不是更上一层楼了,时时关注2345hao.cn,学习最新Mysql技术。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/21099.html

分享给朋友:

“MySQL 服务器实施调优的3方案” 的相关文章

windows 7/8.1正在启动windows时间长的解决方法

windows 7/8.1正在启动windows时间长的解决方法

正在启动windows时间长怎么办 小编带来了Windows 7/8.1正在启动windows时间长解决方法,假如有朋友在安装完Windows系统之后一直停留在“正在启动windows”的话,不妨试一试下文的方法哦~ 原因:Windows 7/8.1不完全支持UEFI,需要CSM(Comp...

Skylake平台不能通过USB接口装windows 7系统

Skylake平台不能通过USB接口装windows 7系统

Intel会在2015年推出Broadwell、Skylake两代14nm处理器,前者可以使用9系芯片组,Skylake升级到了LGA1151插槽,需要搭配新的100系列芯片组,但初期的Skylake-S又不能超倍频,所以今年Q2季度开始会很混杂。Skylake一代会支持DDR4,100系列芯片组升...

windows 7启动后检测到硬盘出错提示请立即备份文件

windows 7启动后检测到硬盘出错提示请立即备份文件

许多朋友的Windows 7系统每次启动到桌面后,都会收到一个提示:Windows检测到一个硬盘问题,请立即备份文件以防信息丢失,并联系计算机制造商以确定是否需要修复或更换硬盘。如下图情况: 碰到这种情况的朋友就需要注意了,虽然不知道当前硬盘是碰到什么问题,但在电脑还能使用的情况下,我们首先要...

Windows7启动后连上了网但网络图标不停转圈怎么办

Windows7启动后连上了网但网络图标不停转圈怎么办

Windows 7电脑开机后,虽然连上了网络,但是网络图标却一直不停地转圈,这个问题该怎么修复呢?今天小编就告诉大家解决的方法吧。 解决方法: 1、假如是打补丁后出现的问题。 第一时间卸载驱动精灵,并且把它的文件夹彻底删除,要干净,用360粉碎! 2、开启network list ser...

QQ远程协助不能控制windows 7系统的电脑该怎么办

QQ远程协助不能控制windows 7系统的电脑该怎么办

当对方使用Windows 7系统的时候,为什么有些时候QQ远程协助控制不了Windows 7的电脑,经常遇到这样的情况,远程连接上了,有些项可以点,有些项点一下就卡死了,点不动了,必须我们经常要用到磁盘管理,当我们点到这个项目的时候对方的电脑画面就卡住了再点鼠标也没有任何反应,这是怎么回事? 经...

Win 7与vista的网络共享方法详解

Win 7与vista的网络共享方法详解

一般大部分人在Windows 7/Vista共享文件为了方便都去掉了密码保护的共享。这样在共享文件夹时就需要添加Everyone或Guest权限。一般共享文件夹时是以向导的形式,添加用户设置权限都很简单,不会有问题。但看到一些人共享驱动器时却遇到了问题。就是网上邻居能够看到共享的驱动器,访问却提示没...