<b>若何对MySQL 服务器举行调优</b>[MySQL防范]
本文“<b>若何对MySQL 服务器举行调优</b>[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
目前,开辟人员不断地开辟和布置利用 LAMP(Linux®、Apache、MySQL 和 PHP/Perl)架构的利用程序.但是,服务器管理员常常对利用程序本身没有什么掌握本领,因为利用程序是别人编写的.这份 共三部份的系列文章 将谈论很多服务器配置问题,这些配置会影呼利用程序的性能.本文是本系列文章的第三部份,也是最后一部份,将重点谈论为实现最高效率而对数据库层举行的调 优.
关于 MySQL 调优
有 3 种办法可以加快 MySQL 服务器的运行速度,效率从低到高顺次为:
替换有问题的硬件. 对 MySQL 进程的设置举行调优. 对查询举行优化.替换有问题的硬件普通是我们的第一考虑,主要缘由是数据库会占用大量资源.不过这种办理筹划也就仅限于此了.实际上,您普通可以让中央处理器(CPU)或磁盘速度加倍,也可以让内存增大 4 到 8 倍.
第二种办法是对 MySQL 服务器(也称为 mysqld
)举行调优.对这个进程举行调优意味着适本地分配内存,并让 mysqld
理解将会承受何种范例的负载.加快磁盘运行速度不如削减所需的磁盘拜候次数.近似地,确保 MySQL 进程精确操作就意味着它耗费在服务查询上的时间要多于耗费在处理后台任务(如处理暂时磁盘表或翻开和关闭文件)上的时间.对 mysqld
举行调优是本文的重点.
最好的办法是确保查询已经举行了优化.这意味着对表利用了得当的索引,查询是按照可以充分操纵 MySQL 功效的方法来编写的.固然本文并没有包含查询调优方面的内容(很多著作中已经针对这个主题举行了探究),不过它会配置 mysqld
来报告大概需求举行调优的查询.
固然已经为这些任务指派了次序,但是仍旧要注意硬件和 mysqld
的设置以利于适本地调优查询.机械速度慢也就罢了,我曾经见过速度很快的机械在运行计划杰出的查询时由于负载太重而失利,因为 mysqld
被大量繁忙的工作所占用而不能服务查询.
记录慢速查询
在一个 SQL 服务器中,数据表都是保存在磁盘上的.索引为服务器供应了一种在表中查找特定数据行的办法,而不用搜索整个表.当必必要搜索整个表时,就称为表扫描.普通来说,您大概只但愿得到表中数据的一个子集,因此全表扫描会浪费大量的磁盘 I/O,因此也就会浪费大量时间.当必须对数据举行衔接时,这个问题就越发复杂了,因为必必要对衔接两头的多行数据举行对比.
当然,表扫描并不老是会带来问题;有时读取整个表反而会比从中挑选出一部份数据越发有效(服务器进程中查询筹划器用来作出这些决意).假如索引的使 用效率很低,大概根本就不能利用索引,则会减慢查询速度,并且随着服务器上的负载和表大小的增添,这个问题会变得越发明显.履行时间超越给按时间范围的查 询就称为慢速查询.
您可以配置 mysqld
将这些慢速查询记录到得当命名的慢速查询日记中.管理员然后会查看这个日记来帮忙他们肯定利用程序中有哪些部份需求进一步伐查.清单 1 给出了要启用慢速查询日记需求在 my.cnf 中所做的配置.
清单 1. 启用 MySQL 慢速查询日记
|
log-queries-not-using-indexes
的告诫:您必须利用 MySQL 4.1 或更高版本.慢速查询日记都保存在 MySQL 数据目录中,名为 hostname-slow.log.假如但愿利用一个差别的名字或途径,可以在 my.cnf 中利用 log-slow-queries = /new/path/to/file
实现此目的.
阅读慢速查询日记最好是通过 mysqldumpslow
号令举行.指定日记文件的途径,便可以看到一个慢速查询的排序后的列表,并且还显示了它们在日记文件中呈现的次数.一个非常有效的特点是 mysqldumpslow
在对比后果之前,会删除任何用户指定的数据,因此对同一个查询的差别调用被计为一次;这可以帮忙找出需求工作量最多的查询.
以上是“<b>若何对MySQL 服务器举行调优</b>[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |