Home  >  Article  >  Database  >  Mysql入门系列:优化MYSQL_MySQL

Mysql入门系列:优化MYSQL_MySQL

WBOY
WBOYOriginal
2016-06-01 13:56:07846browse

  4.6 管理员的优化

  前面各段介绍了普通的MySQL用户利用表创建和索引操作,以及利用查询的编写能够进行的优化。不过,还有一些只能由MySQL管理员和系统管理员来完成的优化,这些管理员在MySQL服务器或运行MySQL的机器上具有控制权。有的服务器参数直接适用于查询处理,可将它们打开。而有的硬件配置问题直接影响查询处理速度,应该对它们进行调整。

  4.6.1服务器参数

  服务器有几个能够改变从而影响其操作的参数(或称变量)。有关服务器参数优化的综合介绍请参见第11章,但其中几个参数主要与查询有关,有必要在此提一下:

  ■ delayed _ queue _ size

  此参数在执行其他INSERT DELAYED 语句的客户机阻塞以前,确定来自INSERT DELAYED 语句的放入队列的行的数目。增加这个参数的值使服务器能从这种请求中接收更多的行,因而客户机可以继续执行而不阻塞。

  ■ key _ buffer _ size

  此参数为用来存放索引块的缓冲区尺寸。如果内存多,增加这个值能节省索引创建和修改的时间。较大的值使MySQL能在内存中存储更多的索引块,这样增加了在内存中找到键值而不用读磁盘块的可能性。在MySQL3.23 版及以后的版本中,如果增加了键缓冲区的尺寸,可能还希望用- - init -file 选项启动服务器。这样能够指定一个服务器启动时执行的SQL 语句文件。如果有想要存放在内存中的只读表,可将它们拷贝到索引查找非常快的HEAP 表。

  4.6.2 硬件问题

  可利用硬件更有效地改善服务器的性能:

  ■ 在机器中安装更多的内存。这样能够增加服务器的高速缓存和缓冲区的尺寸,使服务器更经常地使用存放在内存中的信息,降低从磁盘取信息的要求。

  ■ 如果有足够的RAM 使所有交换在内存文件系统中完成,那么应该重新配置系统,去掉所有磁盘交换设置。否则,即使有足以满足交换的R A M,某些系统仍然要与磁盘进行交换。

  ■ 增加更快的磁盘以减少I/O 等待时间。寻道时间是这里决定性能的主要因素。逐字地移动磁头是很慢的,一旦磁头定位,从磁道读块则较快。

  ■ 在不同的物理设备上设法重新分配磁盘活动。如果可能,应将您的两个最繁忙的数据库存放在不同的物理设备上。请注意,使用同一物理设备上的不同分区是不够的。这样没有帮助,因为它们仍将争用相同的物理资源(磁盘头)。移动数据库的过程在第10

  章中介绍。

  在将数据重新放到不同设备之前,应该保证了解该系统的装载特性。如果在特定的物理设备上已经有了某些特定的主要活动,将数据库放到该处实际上可能会使性能更坏。例如,不要把数据库移到处理大量Web 通信的Web 服务器设备上。

  ■ 在设置MySQL时,应该配置其使用静态库而不是共享库。使用共享库的动态二进制系统可节省磁盘空间,但静态二进制系统更快(然而,如果希望装入用户自定义的函数,则不能使用静态二进制系统,因为UDF 机制依赖于动态连接)。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn