网络编程
位置:首页>> 网络编程>> 数据库>> Mysql入门系列:优化MYSQL服务器

Mysql入门系列:优化MYSQL服务器

作者:佚名 来源:设计家园 发布时间:2008-11-24 13:25:00 

标签:

MySQL服务器有几个影响其操作的参数(变量)。如果缺省的参数值不合适,可以将其修改为对服务器运行环境更合适的值。例如,如果您有大量的内存,可以告诉服务为磁盘和索引操作使用较大的缓冲区。这将使内存持有更多的信息并减少了必须进行的磁盘访问的数量。如果是一般的系统,可以告诉服务器使用较小的缓冲区,以防止它扰乱系统资源损害其他的进程。

系统变量的当前值可以通过执行mysqladmin variables 命令来检查。变量可利用- - set - variable var_name = value 选项在命令行设置( -ovar_name = value 是等价的)。如果要想设置几个变量,可使用多个--set-variable 选项,还可以使用下列语法在一个选项文件的[mysqld] 组中设置变量:

  set -variale=var_name=value

在附录E的mysql程序的条款下给出了服务器变量的全部清单。有关性能优化比较常用的变量已在以下列表中给出。您还可以在MySQL参考手册的“从MySQL中获得最高性能”一章中找到该主题的附加讨论。

back_log 引入的客户机连接请求的数量,这些请求在从当前客户机中处理时排队。如果您有一个很忙的站点,可以增加该变量的值。

delayed_queue_size 此变量控制被排队的INSERT DELAYED 语句中的行数。如果该队列已满,则更多的INSERT DELAYED 将堵塞,直到队列有空间为止,这样可防止发布那些语句的客户机继续进行操作。如果您有许多执行这种INSERT 的客户机,且发现它们正在堵塞,那么应增加该变量,使更多的客户机更快地进行工作( INSERT D E L AYED 在4 . 5节“调度与锁定问题”中讨论)

flush_time 如果系统有问题并且经常锁死或重新引导,应将该变量设置为非零值,这将导致服务器按flush_time 秒来刷新表的高速缓存。用这种方法来写出对表的修改将降低性能,但可减少表讹误或数据丢失的机会。

在Windows 中,可以在命令行上用--flush 选项启动服务器,以迫使表的修改在每次更新后被刷新。

key _ buffer_size 用于存放索引块缓冲区的大小。如果增加该变量值,将加快创建和修改索引操作的时间。值越大MySQL就越有可能在内存中查找键值,这将减少索引处理所需的磁盘访问次数。

在MySQL3.23 以前的版本中,该变量名为key _ buffer。MySQL3.23 及后来的版本同时识别这两个名字。

max_allowed_packet 客户机通信所使用的缓冲区大小的最大值。如果有客户机要发送大量的BLOB 或TEXT 的值,该服务器变量值可能需要增大。

客户机目前使用大小为24MB 的缺省缓冲区。如果有使用较小缓冲区的旧客户机。可能需要使该客户机的缓冲区大一些。例如, mysql可以按如下调用来指定一个2 4 MB 信息包的限制值:

mysql--set-varibale max_allowed_packet=24M

max_connections 服务器允许的客户机同时连接的最大数量。如果服务器繁忙,可能需要增加该值。例如,如果您的MySQL服务器被Web 服务器使用来处理由DBI 或PHP 脚本产生的查询,并且还有大量的Web 通信,如果该变量设置太低的话,则您站点的访问者会发现请求被拒绝。

table_cache 表的高速缓存的大小。增加该值可以使mysqld 保持更多的表,同时打开并减少必须进行的文件打开和关闭操作的次数。

如果增加了max_connections 或table_cache 值的大小,服务器将需要大量的文件描述符。这将引起有关操作系统对文件描述符总进程数量限定的问题,在这种情况下您需要增加该限制值或逐步解决它。由于增加文件描述符数量的限制值,过程会发生变化,所以您可能会在一个运行脚本中使用ulimit 命令时来这样做,该脚本可用于启动服务器,或用于重新配置您的系统。有些系统可以通过编辑系统描述文件来简单地配置和重新引导。对于其他一些系统,则必须编辑一个内核描述文件并重建该内核。如何继续进行下去,请参考您系统的文档。

解决总进程文件描述符限制的一个方法是:将数据目录分离成多个数据目录并运行多个服务器。这样,通过运行多个服务器使可用的描述符数量成倍增长。但另一方面,其他的复杂因素可能会引起问题。由于命名了两个服务器,您不能从一个单个的服务器上访问不同数

据目录中的数据库,并且还需要在不同服务器之间复制授权表的权限,以便用户需要访问一个以上的服务器。

有两个变量是管理员为提高性能时常增加的,它们是record _ buffer 和sort _ buffer。这些缓冲区在连接和分类操作中使用,但其值是属于每个连接的。也就是说,每个客户机都获得属于自己的缓冲区。如果使这些变量的值很大,性能可能会由于昂贵的系统资源的消耗而遭受实际的损失。如果想要修改这些变量,先执行mysqladmin variables 查看一下它们当前的值,然后增量调整其值。这个操作使您能估计为减少严重的性能降低所进行的修改的效果。

0
投稿

猜你喜欢

  • 有的时候取出全部数据库记录也许正好满足你的要求,不过,在大多数情况下我们通常只需得到部分记录。这样一来该如何设计查询呢?当然会更费点脑筋了,
  • 上一课:ACCESS入门教程:初识Access 2000窗口接口简介 通过上一课的学习,你是否感觉Access的窗口和接口还有点搞不清楚,对
  • 如果机房马上要关门了,或者你急着要和MM约会,请直接跳到第四个自然段。以下叙述的脚本包括服务器端脚本和客户端的脚本,服务器端脚本指在服务器上
  • 行高的概念看上去很简单——文字行的高度,其实,行高所涉及到的基础知识,对于今后理解其它属性也很重要。大片密密麻麻的文字往往会让人觉得乏味,因
  • 在这个星期Doug Bowman离开谷歌的Twitter引发了很多激烈的讨论.在残酷的诚实邮件中,Doug Bowman援引谷歌”限制性的数
  • 前一段时间,一个流行的东方系列mv 《bad apple》  带来一股奇怪的风潮: 各种技术狂人纷纷把这段mv在一些匪夷
  • 大家是否还记得1983年任天堂的著名游戏《超级玛丽》里那个留着胡子的意大利水管工人,还有日本konami公司1987年发行的射击游戏《魂斗罗
  • ASP通过XMLDom在服务器端操作XML文件的主要方法和实现对于小数据量,xml文件在检索更新上于ACCESS有很多优势。我曾经测试过不用
  • Dreamweaver MX 2004 试用试用心得:安装:选择工作界面(我选了默认的设计模式)初次启动,选择30天试用如果你也看到这个警告
  • 有感于中国互联网设计界十几年的变化,从网页设计师变身界面设计师,和近一两年来兴起的转型交互设计师。大多数都是随着一个行业的兴起而前赴后继的投
  • 今天好不容易闲下来半天,所以和大家分享一下我之前总结的一套Web UI 设计命名规范,也就是网站用户界面设计(俗称网页设计)命名规范。这套规
  • SQL Server定位于中型的数据库应用,操作较Oracle和MySQL等要相对简便,SQL Server在处理海量数据的效率,后台开发的
  • 名称:YUI Compressor最新版本:2.4.2用途:js/css压缩必备指数:使用难度:(YUI Compressor非常易用,只是
  • 如何要恢复Master数据库呢?方法1:重装SQL,但是数据就Over掉了方法2:重建Master Rebuildm.exe 用到SQL的安
  • 上节我们介绍了表连接,更确切的说是inner joins內连接. 內连接仅选出两张表中互相匹配的记录.因此,这会导致有时我们需要的记录没有包
  • 根据国务院文件,5.19-5.21为全国哀悼日,在此期间,全国和各驻外机构下半旗志哀,停止公共娱乐活动,外交部和我国驻外使领馆设立吊唁簿。5
  • MySQL 数据(字段)类型在创建表的时候,要明确定义字段对应的数据类型。MySQL 主要的数据类型分为数值类型、字符串(文本)类型、时间日
  • 一个改进的仿google页面拖拽效果,移植方便。web2.0网站经常会用有这个拖拽页面布局的功能,如果你也想给你的网站加上这个有趣的功能,不
  • Css3引入了新的盒模型——弹性盒模型,该模型决定一个盒子在其他盒子中的分布方式以及如何处理可用的空间。这与XUL(火狐使用的用户交互语言)
  • 因AJAX接受数据时服务器默认是采用UTF-8的编码形式进行传送,所以在很多GB2312中文网页中应用AJAX回传数据经常会发生中文乱码。解
手机版 网络编程 asp之家 www.aspxhome.com