Mysql一直显示等待中_Mysql中的各种timeout
在使用MySQL的过程中,你是否遇到了众多让人百思不得其解的Timeout?
那么这些Timeout之后,到底是代码问题,还是不为人知的匠心独具?
本期Out-man,讲述咱们MySQL DBA自己的Timeout。
先看一下比较常见的Timeout参数和相关解释:
connect_timeout
The number of seconds that the mysqld server waits for a connect packet before responding with Bad handshake.
interactive_timeout
The number of seconds the server waits for activity on an interactive connection before closing it.
wait_timeout
The number of seconds the server waits for activity on a noninteractive connection before closing it.
net_read_timeout
The number of seconds to wait for more data from a connection before aborting the read.
net_write_timeout
The number of seconds to wait for a block to be written to a connection before aborting the write.
从以上解释可以看出,connect_timeout在获取连接阶段(authenticate)起作用,interactive_timeout和wait_timeout在连接空闲阶段(sleep)起作用,而net_read_timeout和net_write_timeout则是在连接繁忙阶段(query)起作用。
获取MySQL连接是多次握手的结果,除了用户名和密码的匹配校验外,还有IP->HOST->DNS->IP验证,任何一步都可能因为网络问题导致线程阻塞。为了防止线程浪费在不必要的校验等待上,超过connect_timeout的连接请求将会被拒绝。
即使没有网络问题,也不能允许客户端一直占用连接。对于保持sleep状态超过了wait_timeout(或interactive_timeout,取决于CLIENT_INTERACTIVE标志)的客户端,MySQL会主动断开连接。
即使连接没有处于sleep状态,即客户端忙于计算或者存储数据,MySQL也选择了有条件的等待。在数据包的分发过程中,客户端可能来不及响应(发送、接收、或者处理数据包太慢)。为了保证连接不被浪费在无尽的等待中,MySQL也会选择有条件(net_read_timeout和net_write_timeout)地主动断开连接。
这么多Timeout足以证明MySQL是多么乐于断开连接。而乐于断开连接的背后,主要是为了防止服务端共享资源被某客户端(mysql、mysqldump、页面程序等)一直占用。
Mysql一直显示等待中_Mysql中的各种timeout相关推荐
- ef mysql不显示所有表_mysql中显示当前数据库下的所有表,包括视图。
webpack初体验 本人菜鸟一枚,最近一直在研究webpack的使用,记录下自己的学习体会,由于网上关于webpack的资源(技术博客)太多,对于初学webpack的新手来说,看着五花八门的技术博客 ...
- mysql MDL锁如何解决_Mysql 中的MDL
首先简单了解一下 mysql 的 sql 类型: 1.数据定义语言 DDL:Create.Drop.Alter 操作.用于定义库和表结构的. 2.数据查询语言 DQL:select.用于查询数据的. ...
- mysql的explain怎么看_mysql中explain用法详解
如果在select语句前放上关键词explain,mysql将解释它如何处理select,提供有关表如何联接和联接的次序. explain的每个输出行提供一个表的相关信息,并且每个行包括下面的列: 1 ...
- mysql获取当前的月_MYSQL中获取当前的年和月
展开全部 select year(curdate()),month(curdate()),day(curdate()); select weekofyear(curdate()); 有点细微的差别,w ...
- mysql日期隐式转换_mysql中的隐式转换
什么隐式类型转换? 在MySQL中: 当操作符与不同类型的操作数一起使用时,会发生类型转换以使操作数兼容.则会发生转换隐式 也就是说,MySQL会根据需要自动将数字转换为字符串,将字符串转换数字.看到 ...
- mysql去除select换行符_MySQL中去除字段中的回车符和换行符
问题: 在使用[ load data infile 'D:/node.txt' into table node fields terminated by '\t'; ]语句批量导入如下图所示的aaa. ...
- mysql创建临时表 主键_MySQL中临时表的基本创建与使用教程
当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后在这些表运行查询. ...
- mysql 子查询怎么写_MySQL中两种子查询的写法
MySQL的测试环境 测试表如下 create table test_table2 ( id int auto_increment primary key, pay_id int, pay_time ...
- mysql排他锁怎么用_MySQL 中的共享锁和排他锁的用法
在 MySQL 中的行级锁.表级锁和页级锁中,咱们介绍过,行级锁是 MySQL 中锁定粒度最细的一种锁,行级锁能大大减少数据库操作的冲突.行级锁分为共享锁和排他锁两种,本文将详细介绍共享锁和排他锁的概 ...
最新文章
- Docker学习(四)-----Docker容器常用命令
- 配置错误:不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的...
- android按钮点击事件(多种方法实现)
- deep$wide keras
- c++17(20)-双向循环链表(不依赖具体数据)
- [Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波
- Leecode 222. 完全二叉树的节点个数——Leecode日常刷题系列
- 查看ubuntu linux开放的端口以及控制端口范围
- 【Python】Error:'int' object is not callable
- MySQL基础(一)介绍和配置
- 无心剑中译迪米特利·马丁《我是谁》
- 理解Python装饰器(Decorator)
- MyBitis(iBitis)系列随笔之四:多表(多对一查询操作)
- Facebook最新研究:全局一致的视频深度估计
- java防xss攻击_java 防止xss攻击
- Flash cs4新增内容:三维效果
- POJ P3764 The xor-longest Path
- RAC知识更新之-RAC单节点启动(摘自文平书)
- jQuery类似QQ空间时间轴效果_事件展示时光轴js特效代码
- 360网上商城:链接生态与终端
热门文章
- 洛谷——P1151 子数整数
- ❤️关于 idea 安装 Vue 插件后新建文件不显示 Vue Component 的问题及解决方法❤️
- Vue packages version mismatch:- vue@2.6.14 - vue-template-compiler@2.6.11解决方法
- npm login 登录失败,报E500 Internal Server Error - PUT https://registry.npm.taobao.org/-/user/org.couchdb
- halcon——在图形窗口中画坐标系
- vs2010一运行就报错deven.exe assert failure 解决方法,卸载系统中.netFramework最新版本的(简体中文)...
- @wraps 修饰器:让你的 Python 代码更加简短可爱 | 从简单实例来认识它
- CentOS 5/6下安装Axel插件加速yum下载
- VSCode下Pytorch无法自动补全的问题
- React Native 0.20官方入门教程