整理小林coding网站关于mysql的信息笔记
以mysql执行一条select语句,
select * from product_tb where id ='1'
mysql在中间发生了什么,这就需要了解mysql的内部的结构,其各个的主要组成部分有两层,Server层和存储引擎层
server层包括了
解析器,查询缓存,预处理器,优化器,执行计划,执行器
存储引擎包括了以不同形式存储的数据,对应的不同的存储引擎
innodb(从5.5之后成为默认的存储引擎)
myisam
memory
csv
...
图片来源为小林网站(https://xiaolincoding.com/mysql)
连接都是TCP三次握手,mysql基于TCP协议传输
查看mysql服务被多少客户端连接了
默认的最长的空闲时长,由wait_timeout参数控制,默认是8个小时,也就是28880秒,如果超过这个时间,空闲的连接会总动断开
可以使用kill connection 加上对应的id,就可以关闭对应的连接
mysql连接数的最大限制是多少
MySQL 服务支持的最大连接数由 max_connections 参数控制,超过200个连接,系统就会拒绝接下来的连接请求,并报错提示“Too many connections”。
msyql的连接跟HTTP一样,也有短连接与长连接的分别
连接 mysql 服务(TCP 三次握手) 执行sql,执行少量的占时间短的sql 断开 mysql 服务(TCP 四次挥手) // 长连接 连接 mysql 服务(TCP 三次握手) 执行sql 多个sql,时间长 执行sql 执行sql .... 断开 mysql 服务(TCP 四次挥手)
长连接的好处就是可以减少建立连接和断开连接的过程时间,但是长连接可能会占用内存增多,有可能被系杀掉进程,会发生mysql服务异常重启的现象。
如何解决长连接占用内存的问题
原文链接 (小林的网站)