快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门新葡亰app在线下载_龟发之家论坛



前面各段先容了通俗的 MySQL 用户使用表创建和索引操作,以及使用查询的编写能够进行的优化。不过,还有一些只能由 MySQL 治理员和系统治理员来完成的优化,这些治理员在 MySQL 办事器或运行 MySQL 的机械上具有节制权。有的办事器参数直接适用于查询处置惩罚,可将它们打开。而有的硬件设置设置设备摆设摆设问题直接影响查询处置惩罚速率,应该对它们进行调剂。

磁查问题

正如前面所述,磁盘寻道是一个机能的大年夜瓶颈。当数据开始增长乃至缓存变得弗成能时,澳门新葡亰app在线下载这个问题变得越来越显着。对大年夜数据库,在那你或多或少地要随机存取数据,你可以寄托你将至少必要一次磁盘寻道来读取并且几回磁盘寻道写入。为了使这个问题最小化,应用有低寻道光阴的磁盘。

为了增添可用磁盘轴的数量(并且从而削减寻道开销),符号联接文件到不合磁盘或瓜分磁盘是可能的。

1、应用符号连接

这意味着你将索引/数据文件符号从正常的数据目录链接到其他磁盘(那也可以被瓜分的)。这使得寻道和读取光阴更好(假如磁盘不用于其他工作)

2、瓜分

瓜分意味着你有许多磁盘并把第一块放在第一个磁盘上,在第二块放在第二个磁盘上,并且第 n块在第(n mod number_of_disks)磁盘上,等等。这意味着,假如你的正常数据大年夜小于瓜分大年夜小(或完美地排列过),你将获得较好一些的机能。留意,瓜分是否很依澳门新葡亰app在线下载附于OS和瓜分大年夜小。是以用不合的瓜分大年夜小测试你的利用法度榜样。见10.8 应用你自己的基准。留意对瓜分的速率差异很依附于参数,取决于你若何瓜分参数和磁盘数量,你可以得出以数量级的不合。留意你必须选择为随机或顺序存取优化。

为了靠得住,你可能想要应用打击RAID 0+1(瓜分+镜像),然则在这种环境下,你将必要2*N个驱动器来澳门新葡亰app在线下载保存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 机制依附于动态连接)。

办事器参数的选择

办事澳门新葡亰app在线下载器有几个能够改变从而影响其操作的参数(或称变量)。系统变量确当前值可以经由过程履行mysqladmin varibles敕令来反省,此中几个参数主要与查询有关,有需要在此提一下:

delayed_queue_size

此参数在履行其他 INSERT DELAYED 语句的客户机壅闭曩昔,确定来自 INSERT DELAYED 语句的放入行列步队的行的数目。增添这个参数的值使办事器能从这种哀求中接管更多的行,因而客户机可以继承履行而不壅闭。

key_buffer_size

此参数为用来寄放索引块的缓冲区尺寸。假如内存多,增添这个值能节省索引创建和改动的光阴。较大年夜的值使 MySQL 能在内存中存储更多的索引块,这样增添了在内存中找到键值而不用读磁盘块的可能性。

在 MySQL 3.23 版及今后的版本中,假如增添了键缓冲区的尺寸,可能还盼望用 --init-file 选项启动办事器。这样能够指定一个办事器启动时履行的 SQL 语句文件。假如有想要寄放在内存中的只读表,可将它们拷贝到索引查找异常快的 HEAP 表。

back_log

引入客户机连接哀求的数量,这些哀求在从当前客户机中处置惩罚时排队。假如你有一个很忙的站点,可以增添改变量的值。

编译和链接如何影响MySQL的速率

大年夜多半下列测试在Linux上并用MySQL基准进行的,然则它们应该对其他操作系统和事情负载给出一些唆使。

当你用-static链接时,你获得最快的可履行文件。应用Unix套接字而非TCP/IP连接一个数据库也可给出好一些的机能。

在Linux上,当用pgcc和-O6编译时,你将获得最快的代码。为了用这些选项编译“sql_yacc.cc”,你必要大年夜约200M内存,由于gcc/pgcc必要很多内存使所有函数嵌入(inline)。在设置设置设备摆设摆设MySQL时,你也应该设定CXX=gcc以避免包括libstdc++库(它不必要)。

只经由过程应用一个较好的编译器或较好的编译器选项,在利用中你能获得一个10-30%的加速。假如你自己编译SQL办事器,这分外紧张!

在Intel上,你应该例如应用pgcc或Cygnus CodeFusion编译器获得最大年夜速率。我们已经测试了新的 Fujitsu编译器,然则它是还没足够不掉足澳门新葡亰app在线下载来优化编译MySQL。

这里是我们做过的一些丈量表:

假如你以-O6应用pgcc并且编译任何器械,mysqld办事器是比用gcc快11%(用字符串99的版本)。

假如你动态地链接(没有-static),结果慢了13%。留意你仍能应用一个动态连接的MySQL库。只有办事器对机能是关键的。

假如你应用TCP/IP而非Unix套接字,结果慢7.5%。

在一个Sun SPARCstation 10上,gcc2.7.3是比Sun Pro C++ 4.2快13%。

在Solaris 2.5.1上,在单个处置惩罚器上MIT-pthreads比带原生线程的Solaris慢8-12%。以更多的负载/cpus,区别应该变得更大年夜。

由TcX供给的MySQL-Linux的分发用pgcc编译并静态链接。

总结

本节简单先容了若何在办事器级优化数据库的机能,以及前进数据库机能涉及到的硬件问题。选择一个只管即便快的系统,应用RAID磁盘阵列是异常轻易想到的措施。

对付数据库守护法度榜样,既可以在编译时就供给相宜的参数,也可以在选项文件中供给必要优化的参数。

思虑题

1、应用ANALYSE历程阐发语句SELECT * FROM pet,判断是否有需要改变列的类型。

2、现在让你必要优化表pet,可以用那些手段做到?

您可能还会对下面的文章感兴趣: