Linux环境MySQL服务器级优化讲授[MySQL防范]
本文“Linux环境MySQL服务器级优化讲授[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
择要:本节简单介绍了如安在服务器级优化数据库的性能,以及提高数据库性能触及到的硬件问题.挑选一个尽大概快的系统,利用RAID磁盘阵列是非常简单想到的办法.关于数据库保护程序,既可以在编译时就供应符合的参数,也可以在选项文件中供应需求优化的参数.
前面各段介绍了普通的 MySQL 用户操纵表成立和索引操作,以及操纵查询的编写可以举行的优化.不过,还有一些只能由 MySQL 管理员和系统管理员来完成的优化,这些管理员在 MySQL 服务器或运行 MySQL 的机械上具有掌握权.有的服务器参数直接实用于查询处理,可将它们翻开.而有的硬件配置问题直接影响查询处理速度,应当对它们举行调整.
磁查问题
正如前面所述,磁盘寻道是一本性能的大瓶颈.当数据开始增长乃至缓存变得不大概时,这个问题变得越来越明显.对大数据库,在那你或多或少地要随机存取数据,你可以依靠你将至少需求一次磁盘寻道来读取并且几次磁盘寻道写入.为了使这个问题最小化,利用有低寻道时间的磁盘.
为了增添可用磁盘轴的数目(并且从而削减寻道开销),标记联接文件到差别磁盘或分割磁盘是大概的.
1、利用标记衔接
这意味着你将索引/数据文件标记从正常的数据目录链接到其他磁盘(那也可以被分割的).这使得寻道和读取时间更好(假如磁盘不用于其他事情)
2、分割
分割意味着你有很多磁盘并把第一块放在第一个磁盘上,在第二块放在第二个磁盘上,并且第 n块在第(n mod number_of_disks)磁盘上,等等.这意味着,假如你的正常数据大小于分割大小(或完善地布列过),你将得到较好一些的性能.注意,分割能否很依靠于OS和分割大小.因此用差别的分割大小测试你的利用程序.见10.8 利用你自己的基准.注意对分割的速度差别很依靠于参数,取决于你若何分割参数和磁盘数目,你可以得出以数目级的差别.注意你必须挑选为随机或次序存取优化.
为了坚固,你大概想要利用攻击RAID 0+1(分割+镜像),但是在这种情形下,你将需求2*N个驱动器来保存N个驱动器的数据.假如你有钱,这大概是最好的挑选!但是你也大概必须投资一些卷管理软件投资以高效地处理它.
一个好挑选是让稍重要的数据(它能再生)上存在RAID 0磁盘上,而将确切重要的数据(像主机信息和日记文件)存在一个RAID 0+1或RAID N磁盘上.假如因为更新颖偶位你有很多写入,RAID N大概是一个问题.
你也可以对数据库利用的文件系统设置参数.一个简单的改变是以noatime选项挂装文件系统.这是它跳过更新在inode中的最后拜候时间,并且这将避免一些磁盘寻道.
硬件问题
可操纵硬件更有效地改进服务器的性能:
1、在机械中安装更多的内存.这样可以增添服务器的高速缓存和缓冲区的尺寸,使服务器更常常地利用存放在内存中的信息,降低从磁盘失信息的要求.
2、假若有充足的 RAM 使全部交换在内存文件系统中完成,那么应当重新配置系统,去掉全部磁盘交换设置.不然,即便有足以满意交换的 RAM,某些系统仍旧要与磁盘举行交换.
3、增添更快的磁盘以削减 I/O 等候时间.寻道时间是这里决意性能的主要因素.逐字地移动磁头是很慢的,一旦磁头定位,从磁道读块则较快.
在差别的物理设备上设法重新分配磁盘活动.假如大概,应将您的两个最繁忙的数据库存放在差别的物理设备上.请注意,利用同一物理设备上的差别分区是不够的.这样没有帮忙,因为它们仍将争用相同的物理资源(磁盘头).移动数据库的历程在第 10 章中介绍.
4、在将数据重新放到差别设备之前,应当保证理解该系统的装载特点.假如在特定的物理设备上已经有了某些特定的主要活动,将数据库放到该处实际上大概会使性能更坏.比方,不要把数据库移处处理大量Web 通信的Web 服务器设备上.
5、在设置 MySQL 时,应当配置其利用静态库而不是同享库.利用同享库的动态二进制系统可节俭磁盘空间,但静态二进制系统更快(但是,假如但愿装入用户自定义的函数,则不能利用静态二进制系统,因为 UDF 机制依靠于动态衔接).
以上是“Linux环境MySQL服务器级优化讲授[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |