CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

数据库 | Oracle | DB2 | SQL Server | MySQL | 商业智能 | BI | DBA | Sybase| SQL Server 2008

您现在的位置: IT专家网 > 数据库子站 > 数据库技巧

MySQL数据库优化(十二):磁盘

作者: 叶金荣,  出处:IT专家网, 责任编辑: 李书琴, 
2008-06-19 10:26
  磁盘搜索是性能的很大瓶颈。这个问题在数据大量增长以至于无法使用有效的缓存时尤为明显。或多或少随即访问大数据库时,就必然会有至少一次磁盘搜索来读数据,两次磁盘搜索来写数据。最小化这个问题的办法就是降低磁盘搜索次数。

MySQL数据库优化(一)  MySQL数据库优化(二)

MySQL数据库优化(三)  MySQL数据库优化(四)

MySQL数据库优化(五)  MySQL数据库优化(六)

MySQL数据库优化(七)  MySQL数据库优化(八)

MySQL数据库优化(九)  MySQL数据库优化(十)

MySQL数据库优化(十一)

  磁盘搜索是性能的很大瓶颈。这个问题在数据大量增长以至于无法使用有效的缓存时尤为明显。或多或少随即访问大数据库时,就必然会有至少一次磁盘搜索来读数据,两次磁盘搜索来写数据。最小化这个问题的办法就是降低磁盘搜索次数。

  增加有效磁盘马达数量(这能减少搜索时的开销)或者将不同的文件链接到不同的磁盘上又或者分盘:

  •   使用符号链接

  意思是,把 MyISAM 表的索引文件和/或数据文件从数据目录下通常的地方链接到其他磁盘上(这也是分盘)。如果这个磁盘没有其他用途的话,这对读写次数都比较好。详情请看"7.6.1 Using Symbolic Links"。

  •   分盘

  如果有好几个磁盘,就把第一个区块放在第一个磁盘,把第二个区块放在第二个磁盘,以此类推。这意味着正常的数据大小比分盘后的数据小(或者完全一样),这能获得更好性能。分盘完全依赖于操作系统以及分盘的大小,因此要用不同的分盘大小基准测试应用程序。详情请看"7.1.5 Using Your Own Benchmarks"。基准测试的速度的不同完全依赖于分盘大小。依赖分盘设置参数以及磁盘数量,会得到大量不同的测量结果。必须随机或者顺序选择优化方法。

  可能会为了可靠性采用 RAID 0+1,这时,就必须用 2*N 个驱动去来保存 N 个驱动器上的数据。如果有足够的内存这可能是最好的方法。不过,这也需要使用卷管理软件来有效地管理数据。

  另一个好办法是RAID的级别根据数据的重要性而定。例如,把能重新生成的有点重要的数据保存在RAID 0磁盘上,把很重要的数据如主机信息日志等保存在RAID 0+1或者RAID N磁盘上。RAID N在有很多个写入时可能会有问题,因为会同时请求更新同一个字节位。

  在Linux上,可以用 hdparm 来配置磁盘接口以获得更好的性能(在负载下高达100%也不是不可能的)。以下 hdparm 配置选项对MySQL就很合适,对其他应用程序可能也不错:

  hdparm -m 16 -d 1

  注意,当使用这个命令之后性能和可靠性会依赖硬件,因此我们强烈建议在使用 hdparm 后一定要做测试。请查阅 hdparm 的手册。如果没有正确使用 hdparm,则可能导致文件系统冲突,所以在试验之前备份一下。

  还可以在数据库使用的文件系统上设置其参数:如果无需知道文件的最后访问时间(这对数据库系统没用),则在挂载文件系统时使用 -o noatime 选项。这就会略过更新文件系统节点的最后访问时间,也就减少了磁盘搜索。在很多操作系统上,可以在挂载文件系统是使用 -o async 选项以异步更新它。如果你的机器相当的稳定,这会带来性能提升但可靠性并没牺牲多少(默认只能在Linux上这样用)。

共4页。 1 2 3 4 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅


    
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i