Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7344920
  • 博文数量: 1763
  • 博客积分: 18684
  • 博客等级: 上将
  • 技术积分: 16217
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-02 10:28
个人简介

啥也没写

文章分类

全部博文(1763)

文章存档

2023年(44)

2022年(39)

2021年(46)

2020年(43)

2019年(27)

2018年(44)

2017年(50)

2016年(47)

2015年(15)

2014年(21)

2013年(43)

2012年(143)

2011年(228)

2010年(263)

2009年(384)

2008年(246)

2007年(30)

2006年(38)

2005年(2)

2004年(1)

分类: LINUX

2009-01-07 13:54:17

一般来讲,程序配置优化所产生的生产力远比提高硬件配置要好,可能一行蹩脚的SQL要吃掉你服务器整个内存,导航你的网站或服务器宕机。
优化程序和服务器配置是提高效率的第一步也是最好的办法,如果实在不行再从去升级你的硬件配置。
在日常的MySQL服务器中,wait-timeout这个参数非常有用。
(在部分MySQL的默认配置中可能没有wait-timeout这个参数项,你在[mysqld]节中加上即可)
参数意义:MySQL客户端的数据库连接闲置最大时间值。
参数默认值:默认值为8小时 。
这个参数的大概意思是某一个MySQL客户端连接闲置的最大时间值,即某一个MySQL客户端连接过程中,闲置的最大时间到达后服务器将其关闭。
MySQL服务器所支撑的最大连接数是有限的,因为每一个连接、第一个表打开的操作都要消耗服务器内存,理想状态是当一个MySQL客户端连接完成工作就自动断开释放内存,如果你的你的网站有大量的MySQL链接请求,这些连接完成SQL执行任务后空闲着啥事也不干,白白占用内存资源,如果 这些连接堆积起来,将导致MySQL超过最大连接数,从而无法新建MySQL连接,有可能导致“Too many connections”的错误。
可以在设置之前用show processlist查看一下MySQL状态,如果你发现你的MYSQL中有大量的Sleep进程,哪么你真的需要设置你的wait-timeout了。依你的程序而定设置多大的值 ,我的设置wait-timeout=10,MySQL中的所有Sleep线程最多只能“睡”10秒,之后就被强行关闭了。
 
mysql>show variables like ‘%timeout’;
打印结果如下:
+—————————-+——-+
| Variable_name | Value |
+—————————-+——-+
| connect_timeout | 5 |
| delayed_insert_timeout | 300 |
| interactive_timeout | 28800 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| wait_timeout | 28800 |
+—————————-+——-+
interactive_timeout 需在mysql_connect()设置CLIENT_INTERACTIVE选项后起作用,并被赋值为wait_timeout;
mysql>set wait_timeout = 10; 对当前交互链接有效;
mysql>set interactive_timeout = 10; 对后续起的交互链接有效;
该超时时间单位是秒,从变量从上次SQL执行后算起;当前空闲若超过该时间,则也会被强制断开。
 
 
 
 
阅读(1284) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~