因为interactive_timeout决定的是交互连接的时间长短,而wait_timeout决定的是非交互连接的时间长短。

问:为什么需要设置interactive_timeout  wait_timeout 两个值?

因为如果数据库默认这两个变量的值是8小时(即28800秒)如果在8小时之内没有连接到数据库,等下次再连的时候就会抛连接超时,或连接关闭这样的异常。

在交互模式下,interactive-timeout取代wait-timeout 。如果客户端是交互模式连接的服务器,那么timeout就会受制于interactive-timeout。如果客户端是非交互模式,那么timeout受制于wait-timeout。是否交互模式连接,有客户端决定。

问题1:这里为什么要同时设置interactive_timeout,wait_timeout的设置才会生效?
 并不是没有生效,连接初始化的时候,wait_timeout会根据client的类型设置为global wait_timeout 或者interactive_timeout 值。你看到没生效因为你用命令行登陆进去就属于交互线程,自然被interactive_timeout 覆盖了。
问题2:interactive的值如果设置的和wait_timeout不同,为什么Interactive_timeout会覆盖wait_timeout?
1.在交互模式下(CLIENT_INTERACTIVE),interactive_timeout才生效,非交互模式下,不生效。
问题3:在进行MySQL优化时,因为interactive_timeout决定的是交互连接的时间长短,而wait_timeout决定的是非交互连接的时间长短。如果在进行连接配置时mysql_real_connect()最后一个参数client_flag不设置为CLIENT_INTERACTIVE,是不是interactive_timeout的值不会覆盖wait_timeout?

问题4:为了减少长连接的数量,在设置优化时是不是可以将interactive_timeout的值设置的大些,而wait_timeout的值设置的小些?但是问题2的描述好像又不允许这样。。。

客户端与服务器之间的交互:

Web 浏览器(客户端)中请求一个地址时,通过HTTP协议向服务器端发送一个请求(request),服务器端收到请求后,在Servlet中根据请求时的方法(method) 的设置get/post来响应doGet()/doPost()方法进行处理,由response对象得到PrintWriter输出流对象out,通过out.println ()将数据形成输出流。 
处理请求之后Java编译器对Servlet进行编译, 得到Class可执行文件。Class文件由Java虚拟机 来解释执行,生成向客户端发送的应答,然后通过HTTP协议发送给客户端。通常返回客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

sql心跳的更多相关文章

  1. 配置数据源的三种方式和sql心跳的配置

    三种方式配置数据源连接池: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...

  2. dbcp基本配置和重连配置 -- mysql 8小时自动断开连接的问题

    1. 引入dbcp (选择1.4) Java代码   com.alibaba.external jakarta.commons.dbcp 1.4 2. dbcp的基本配置 相关配置说明: initia ...

  3. 解读dbcp自动重连那些事---转载

    http://agapple.iteye.com/blog/791943 可以后另一篇做对比:http://agapple.iteye.com/blog/772507 同样的内容,不同的描述方式,不一 ...

  4. ssm文件配置

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  5. Spring+SpringMVC+mybatis框架整合

    1.jdbc.properties 1 driverClassName=com.mysql.jdbc.Driver 2 url=jdbc\:mysql\://127.0.0.1\:3306/slsal ...

  6. canal 配置

    参考:https://www.2cto.com/database/201609/547661.html Spring配置 spring配置的原理是将整个配置抽象为两部分: xxxx-instance. ...

  7. 【Canal源码分析】配置项

    本文讲解canal中的一些配置含义. 一.配置加载图 二.配置文件canal.properties 2.1 common参数定义 比如可以将instance.properties的公用参数,抽取放置到 ...

  8. 【DBCP】DBCP基本配置和重连配置+spring中配置

    最近在看一些dbcp的相关内容,顺便做一下记录,免得自己给忘记了.   1. 引入dbcp (选择1.4) <dependency> <groupId>com.alibaba. ...

  9. dbcp 详细配置

    1.配置参数 username : 连接用户名 password:  连接密码 url :  连接 url( 如果连接 mysql ,格式为 jdbc:mysql://ip:port/dbname) ...

随机推荐

  1. linux安装redis及主从复制、读写分离、哨兵模式

    Redis安装与部署 版本最好选择3.0及以上.以后还可以部署Redis集群. 1.下载: [root@bogon redis-3.0.0]# cd /usr/local [root@bogon lo ...

  2. leetcode 中等题(2)

    50. Pow(x, n) (中等) double myPow(double x, int n) { ; unsigned long long p; ) { p = -n; x = / x; } el ...

  3. enlarge your dataset

    列举常见的几种数据集增强方法: 1.flip  翻折(左右,上下) # NumPy.'img' = A single image. flip_1 = np.fliplr(img) # TensorFl ...

  4. jggrid应用,后台c#

    参考网址: 1.https://www.cnblogs.com/miro/p/jqGrid.html 2.https://blog.csdn.net/ainuser/article/details/6 ...

  5. FortiGate防火墙内存使用率高问题

    1.现象:zabbix监控到防火墙内存使用率频繁超过80%,而FortiGate防火墙内存超过80%将开启自身保护模式而不能新加策略等. 2.分析:这种情况一般是某些进程再释放内存的时候卡住.可以先查 ...

  6. RabbitMQ 参数们的Power “续”

      参数中的 arguments 之前讲参数的一些作用的时候,忽略了最后一个字典类型的参数,因为这个参数是大有文章的,值得单独进出来说道说道. 这时,就不得不打开我们的 Web UI管理系统了,可以看 ...

  7. swift - 本地通知

    1. AppDelegate  注册 class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? fun ...

  8. 细说GIT分布式版本控制器

    一.Git介绍 Git是目前世界上最先进的分布式版本控制器.Svn CVS 版本控制器:就是用来追溯自己书写的代码的记录信息.好处:可以非常方便的记录何时何地何人操作了哪些代码. 什么是分布式版本控制 ...

  9. python脚本netifaces模块的调用

    # vim get_ip.py # -*- coding: utf- -*- #complete local network card IP #need install netifaces modem ...

  10. log4j 产生的日志位置设置和catalina.home、catalina.base

    方法一. 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs ...