一条SQL查询语句是如何执行的?( 五 )
连接完成后 , 如果你没有后续的动作 , 这个连接就处于空闲状态 , 你可以在 show processlist 命令中看到它 。 文本中这个图是 show processlist 的结果 , 其中的 Command 列显示为“Sleep”的这一行 , 就表示现在系统里面有一个空闲连接 。
客户端如果太长时间没动静 , 连接器就会自动将它断开 。 这个时间是由参数 wait_timeout 控制的 , 默认值是 8 小时 。
如果在连接被断开之后 , 客户端再次发送请求的话 , 就会收到一个错误提醒: Lost connection to MySQL server during query 。 这时候如果你要继续 , 就需要重连 , 然后再执行请求了 。
数据库里面 , 长连接是指连接成功后 , 如果客户端持续有请求 , 则一直使用同一个连接 。 短连接则是指每次执行完很少的几次查询就断开连接 , 下次查询再重新建立一个 。
建立连接的过程通常是比较复杂的 , 所以我建议你在使用中要尽量减少建立连接的动作 , 也就是尽量使用长连接 。
但是全部使用长连接后 , 你可能会发现 , 有些时候 MySQL 占用内存涨得特别快 , 这是因为 MySQL 在执行过程中临时使用的内存是管理在连接对象里面的 。 这些资源会在连接断开的时候才释放 。 所以如果长连接累积下来 , 可能导致内存占用太大 , 被系统强行杀掉(OOM) , 从现象看就是 MySQL 异常重启了 。
推荐阅读
- Uzi|LOL近年来两大转会假新闻!一条比一条离谱好笑
- 手机游戏|DNF关服了会有什么补偿?玩家讨论出四种可能,最后一条最靠谱
- 一条小团团|瘦身成功的小团团,只打算邀女粉庆生,结果多了8个男粉
- 一条小团团|网红「一条小团团」不惧恶评!大方露脸,发布视频!自称:从未被认出过
- 梦幻西游|梦幻西游:翻出一条10级双蓝字腰带,引来土豪哄抢,价值飙升10亿
- 超激斗梦境|《超激斗梦境》人物每一条属性介绍
- 一条小团团|鱼死网破?小团团发文暗示被背锅,公会的问题和她没关系
- 一条小团团|虎牙法神带小团团开黑,振刀成功后,小团团激动:我负责捡武器
- 云顶之弈|云顶之弈:开局三龙族,是天赐还是陷阱?不要一条道走到黑!
- 打野|新版本T0刺客突然诞生,出名刀可以再获得一条命,天克百里玄策!