快速业务通道

从MySQL得到最大的性能

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-18
od number_of_disks)磁盘上,等等.这意味着,如果你的正常数据大小于分割大小(或完美地排列过),你将得到较好一些的性能.注意,分割是否很依赖于OS和分割大小.因此用不同的分割大小测试你的应用程序.见10.8 使用你自己的基准.注意对分割的速度差异很依赖于参数,取决于你如何分割参数和磁盘数量,你可以得出以数量级的不同.注意你必须选择为随机或顺序存取优化. 为了可靠,你可能想要使用袭击RAID 0+1(分割+镜像),但是在这种情况下,你将需要2*N个驱动器来保存N个驱动器的数据.如果你有钱,这可能是最好的选择!然而你也可能必须投资一些卷管理软件投资以高效地处理它. 一个好选择是让稍重要的数据(它能再生)上存在RAID 0磁盘上,而将确实重要的数据(像主机信息和日志文件)存在一个RAID 0+1或RAID N磁盘上.如果因为更新奇偶位你有许多写入,RAID N可能是一个问题. 你也可以对数据库使用的文件系统设置参数.一个容易的改变是以noatime选项挂装文件系统.这是它跳过更新在inode中的最后访问时间,而且这将避免一些磁盘寻道.

  你可以从数据库目录移动表和数据库到别处,并且用链接到新地点的符号代替它们.你可能想要这样做,例如,转移一个数据库到有更多空闲空间的一个文件系统. 如果MySQL注意到一个表是一个符号链接,它将解析符号链接并且使用其实际指向的表,它可工作在支持realpath()调用的所有系统上(至少 Linux和Solaris支持realpath())!在不支持realpath()的系统上,你应该不同时通过真实路径和符号链接访问表!如果你这样做,表在任何更新后将不一致. MySQL缺省不支持数据库链接.只要你不在数据库之间做一个符号链接,一切将工作正常.假定你在MySQL数据目录下有一个数据库db1,并且做了一个符号链接db2指向db1:

 shell&> cd /path/to/datadir

  shell&> ln -s db1 db2

  现在,对在db1中的任一表tbl_a,在db2种也好象有一个表tbl_a.如果一个线程更新db1.tbl_a并且另一个线程更新db2.tbl_a,将有问题. 如果你确实需要这样,你必须改变下列在“mysys/mf_format.c”中的代码:

  if (!lstat(to,&stat_buff)) /* Check if it''s a symbolic link */

  if (S_ISLNK(stat_buff.st_mode) && realpath(to,buff))

  把代码改变为这样:

  if (realpath(to,buff))

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号