微前端架构如何改变企业的开发模式与效率提升
908
2022-11-21
MySQL 的连接原理分析
1 MySQL连接介绍
1.1通信类型
同步通信依赖于被调用方,受限于被调用方的性能。也就是说,应用操作数据库,线程会阻塞,等待数据库的返回。
1.2 异步通信
异步可以避免应用阻塞等待,但是不能节省 SQL 执行的时间。如果异步存在并发,每一个 SQL 的执行都要单独建立一个连接,避免数据混乱。但是这样会给服务端带来巨大的压力(一个连接就会创建一个线程,线程间切换会占用大量 CPU 资源)。另外异步通信还带来了编码的复杂度,所以一般不建议使用。如果要异步,必须使用连接池,排队从连接池获取连接而不是创建新连接。
2 连接方式
2.1 短连接
短连接操作步骤:连接–>数据传输–>关闭连接。
2.2 长连接
长连接操作步骤连接–>数据传输–>保持连接–>数据传输–>保持连接–>…………–>关闭连接
3 协议
3.1 TCP/IP
TCP/IP 套接字连接方式是 MySQL 在任何平台都提供的一种连接方式,也是网络中使用最多的一种方式
3.2 Unix Socket
UNIX Socket 是连接 MySQL 需要一个物理文件,文件的存放位置在配置文件中有定义,所以只能在 MySQL 客户端和数据库实例在同一台服务器上的情况下使用。它所有协议中最高效的一个。
4 在服务端中查看连接信息
4.1 查看服务端中的连接数
4.2 优化 Threads_created
4.2.1 解决方案
5 查看连接超时时间
5.1 交互式
5.2 非交互式
5.3 优化连接超时时间
5.3.1 交互式
5.3.2 非交互式
5.3.3 总结
wait_timeout 的作用是,设置非交互连接(就是指那些连接池方式、非客户端方式连接的)的超时时间,默认是 28800,就是 8 小时,超过这个时间,mysql 服务器会主动切断那些已经连接的,但是状态是 sleep 的连接
6 查看最大连接数
6.1 优化最大连接数
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~