小白白话技术之MYSQL的连接

        这是一篇关于MYSQL连接的一些思路白话介绍篇,希望直白的语言有助于你更容易理解MYSQL的连接原理和应用。

        MYSQL是客户端/服务端架构,客户端和服务端需要建立连接进行通信,可以用俩种方式建立连接,一种是通过TCP/IP协议,一种是通过socket方式。

        mysql客户端/服务器通信协议的采用的是半双工机制,即一个时刻只允许一方发送数据且不能中断,比如MYSQL查询的数据可以理解为是服务端推送给客户端的,并且不允许中断。对于socket方式只能是本机访问,通过想通过这种方式连接数据库需要指定socket文件。如果采用TCP/IP协议方式,需要指定地址、端口来创建连接。

         一个客户端连接会在服务端创建一个线程,每个连接的查询只会在线程中执行,如果创建多个连接就会有多个线程,服务端采用线程池技术就可以实现线程在连接上的复用。

        客户端的连接也是可以复用的,这样可以降低创建连接的成本,客户端连接池技术有很多。每个连接可以做多个查询操作。

        创建连接除了底层网络连接的建立,应用层也是有控制的,首先是权限,比如用户权限的验证,远程访问权限的验证等。

         客户端连接池管理也是很复杂的,可以有很多参数进行配置。比如说连接超时时间,比如说连接队列类型,比如说连接池的初始大小,最大连接数,允许的最小空闲数据,最大空闲数量等等。如果每次数据库访问都创建连接,性能影响是很大的,这是可以利用连接池里的连接访问,提高连接的复用频率。

          Mysql服务端对最大连接数是有控制的,可以通过参数来调整,否则一旦超了允许的建立的最大连接数就会有Too many connections这样的错误,但是连接数也不是越大越好,因为每个连接都有分配内存,太多的连接数对内存是一个很大的开销。

          另外一个关于连接常见的问题就是连接超时,首先一定要设置超时时间,超时时间不应太长,另外应该有熔断和快速失败机制,防止没有必要的等待和滚雪球效应。

          当然,最重要的采用合适的连接管理库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值