从mysql得到最大的性能--

从mysql得到最大的性能--

ID:22377423

大小:131.50 KB

页数:37页

时间:2018-10-28

从mysql得到最大的性能--_第1页
从mysql得到最大的性能--_第2页
从mysql得到最大的性能--_第3页
从mysql得到最大的性能--_第4页
从mysql得到最大的性能--_第5页
资源描述:

《从mysql得到最大的性能--》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、从MySQL得到最大的性能>>  优化是一项复杂的任务,因为它最终需要对整个系统的理解。当用你的系统/应用的小知识做一些局部优化是可能的时候,你越想让你的系统更优化,你必须知道它也越多。  因此,本章将试图解释并给出优化MySQL的不同方法的一些例子。但是记住总是有某些(逐渐变难)是系统更快的方法留着去做。  1优化概述  为了使一个系统更快的最重要部分当然是基本设计。你也需要知道你的系统将做这样的事情,那就是你的瓶颈。  最常见的瓶颈是:  *磁盘寻道。磁盘花时间找到一个数据,用在1999年的现代磁盘其平均时间通常

2、小于10ms,因此理论上我们能大约一秒寻道1000次。这个时间用新磁盘提高很慢并且很难对一个表优化。优化它的方法是将数据散布在多个磁盘上。  *当磁盘在我们需要读数据的正确位置时,磁盘读/写。用1999年的现代,一个磁盘传输类似10-20Mb/s。这必寻道更容易优化,因为你能从多个磁盘并行地读。  *CPU周期。当我们读数据进内存时,(或如果它已经在那里)我们需要处理它以达到我们的结果。当我们有相对内存较小的表时,这是最常见的限制因素,但是用小表速度通常不是问题。  *内存带宽。当CPU需要超出适合cpu缓存的数据时

3、,缓存带宽就成为内存的一个瓶颈。这是对大多数系统的一个不常见的瓶颈但是你应该知道它。  2系统/编译时和启动参数的调节  我们以系统级的东西开始,因为这些决策的某一些很早就做好了。在其他情况下,快速浏览这部分可能就够了,因为它对大收获并不重要,但是有一个关于在这个层次上收获有多大的感觉总是好的。  使用的缺省OS确实重要!为了最大程度地使用多CPU,应该使用Solaris(因为线程工作得确实不错)或Linux(因为2.2本的核心又确实不错的SMP支持)。而且在32位的机器上,Linux缺省有2G的文件大小限制。当新的

4、文件系统被释出时(XFS),希望这不久被修正。  因为我们没在很多平台上运行生产MySQL,我们忠告你在可能选择它前,测试你打算运行的平台。  其他建议:  *如果你有足够的RAM,你能删除所有交换设备。一些操作系统在某些情况下将使用一个SySQL选项避免外部锁定。注意这将不影响MySQL功能,只要它仅运行在一个服务器上。只要在你运行myisamchk以前,记得要停掉服务器(或锁定相关部分)。在一些系统上这个开关是强制的,因为外部锁定不是在任何情况下都工作。当用MIT-pthreads编译时,--skip-locki

5、ng选项缺省为打开(on),因为flock()没在所有的平台上被MIT-pthreads充分支持。唯一的情况是如果你对同一数据运行MySQL服务器(不是客户),你不能使用--skip-locking之时,否则对没有先清掉(flushing)或先锁定mysqld服务器的表上运行myisamchk。你仍然能使用LOCKTABLES/UNLOCKTABLES,即使你正在使用--skip-locking。  2.1编译和链接怎样影响MySQL的速度  大多数下列测试在Linux上并用MySQL基准进行的,但是它们应该对其他操

6、作系统和工作负载给出一些指示。  当你用-static链接时,你得到最快的可执行文件。使用Unix套接字而非TCP/IP连接一个数据库也可给出好一些的性能。  在Linux上,当用pgcc和-O6编译时,你将得到最快的代码。为了用这些选项编译sql_yacc.cc,你需要大约200M内存,因为gcc/pgcc需要很多内存使所有函数嵌入(inline)。在配置MySQL时,你也应该设定CXX=gcc以避免包括libstdc++库(它不需要)。  只通过使用一个较好的编译器或较好的编译器选项,在应用中你能得到一个10-3

7、0%的加速。如果你自己编译SQL服务器,这特别重要!  在Intel上,你应该例如使用pgcc或CygnusCodeFusion编译器得到最大速度。我们已经测试了新的Fujitsu编译器,但是它是还没足够不出错来优化编译MySQL。  这里是我们做过的一些测量表:  *如果你以-O6使用pgcc并且编译任何东西,mysqld服务器是比用gcc快11%(用字符串99的版本)。  *如果你动态地链接(没有-static),结果慢了13%。注意你仍能使用一个动态连接的MySQL库。只有服务器对性能是关键的。  *如果你使用

8、TCP/IP而非Unix套接字,结果慢7.5%。  *在一个SunSPARCstation10上,gcc2.7.3是比SunProC++4.2快13%。  *在Solaris2.5.1上,在单个处理器上MIT-pthreads比带原生线程的Solaris慢8-12%。以更多的负载/cpus,差别应该变得更大。  由TcX提供的MySQL-Lin

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。