?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
  
mysql_timeout详解
 
 
mysql> show global variables like "%timeout%";
+-----------------------------+----------+
| Variable_name               | Value    |
+-----------------------------+----------+
| connect_timeout             | 10       |
| delayed_insert_timeout      | 300      |
| innodb_flush_log_at_timeout | 1        |
| innodb_lock_wait_timeout    | 120      |
| innodb_rollback_on_timeout  | OFF      |
| interactive_timeout         | 28800    |
| lock_wait_timeout           | 31536000 |
| net_read_timeout            | 30       |
| net_write_timeout           | 60       |
| rpl_stop_slave_timeout      | 31536000 |
| slave_net_timeout           | 3600     |
| wait_timeout                | 28800    |
+-----------------------------+----------+
12 rows in set (0.00 sec)
 
1). connect_timeout:
在获取链接时,等待握手的超时时间,只在登录时有效,登录成功这个参数就不管事了.主要是为了防止网络不佳时应用重连导致连接数涨太快,一般默认即可.
 
2). delayed_insert_timeout:
这是为MyISAM INSERT DELAY设计的超时参数,在INSERT DELAY中止前等待INSERT语句的时间.
 
3). innodb_lock_wait_timeout:
就是事务遇到锁等待时的Query超时时间.跟死锁不一样,InnoDB一旦检测到死锁立刻就会回滚代价小的那个事务,
锁等待是没有死锁的情况下一个事务持有另一个事务需要的锁资源,被回滚的肯定是请求锁的那个Query.
 
4). innodb_rollback_on_timeout:
这个参数关闭或不存在的话遇到超时只回滚事务最后一个Query,打开的话事务遇到超时就回滚整个事务.
 
5). interactive_timeout/wait_timeout:
一个持续SLEEP状态的线程多久被关闭.线程每次被使用都会被唤醒为acrivity状态,执行完Query后成为interactive状态,
重新开始计时.wait_timeout不同在于只作用于TCP/IP和Socket链接的线程,意义是一样的.一般设置是8小时,
一般网站白天都有人访问,从夜里到早上一般都会超过8小时,所以再来访问就会这个问题.
 
6). net_read_timeout / net_write_timeout:
这个参数只对TCP/IP链接有效,分别是数据库等待接收客户端发送网络包和发送网络包给客户端的超时时间,这是在Activity状态下的线程才有效的参数.
 
7). slave_net_timeout: 这
是Slave判断主机是否挂掉的超时设置,在设定时间内依然没有获取到Master的回应就人为Master挂掉了
 
  


---------------------------------------------------------------------------------------------
不忘初心 方得始终!

唯有志存高远,方能风行天下。

道之所存,虽千万人吾往矣! 情之所钟,虽千万里吾念矣~

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。