前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 线程池&连接池&长连接&短连接

MySQL 线程池&连接池&长连接&短连接

作者头像
lyb-geek
发布2022-03-10 13:55:29
1.6K0
发布2022-03-10 13:55:29
举报
文章被收录于专栏:Linyb极客之路Linyb极客之路

线程池

简介

1、mysql每连接每线程,mysql都分配一个单独的线程,该线程处理客户端发来的所有命令 2、每个线程会占用一定的系统资源,线程数越多消耗的系统资源也越多 3、线程的创建和销毁有一定的开销 4、当线程数过多时,如果大部分线程都处于活跃状态,会导致频繁的上下文切换,从而造成系统巨大的开销 5、线程的本质就是线程共用,多个连接之间共享线程

何时使用

1、在有大量短查询的业务场景下 2、大量长查询的业务场景下不适合使用线程池,由于长查询占据了线程池的线程,导致线程池出现效率低下的情况

组成

1、线程池由多个分组组成 2、每个分组由一个任务队列、一个listener线程以及多个worker线程组成 3、还存在一个timer线程(用于检查线程池分组的状态以及定期清理掉过期的客户端连接)

连接池

简介

1、连接池是一些网络代理服务或应用服务器的特性(如J2EE服务器) 2、实现了一个持久连接的“池”,允许其它程序,客户端来连接 3、连接池将被所有连接的客户端共享使用 4、连接池可以加速连接,也可以减少数据库连接,降低数据库服务器的负载

短连接

简介

1、程序和数据库通信时建立连接,执行操作后,连接关闭 2、基本步骤:连接->数据传输->关闭连接 3、慢速网络下使用短连接,连接的开销会很大 4、在生产繁忙的系统中,连接也可能会收到系统端口数的限制 5、每秒建立上千个连接,连接断开后,端口不会被马上回收利用,必须经历一个“FIN”阶段的等待,直到可被回收利用为止,这样导致端口资源不够用

长连接

简介

1、长连接是指程序之间的连接在建立之后,就一直打开,被后续程序重用 2、当收到一个永久连接请求时,将检查是否已经存在一个(前面已经开启了的)相同的永久连接 3、如果存在,则直接使用这个连接,不存在,则建立一个新的连接(“相同”指用相同的用户名和密码到相同主机的连接) 4、客户端角度,不用每次创建新连接,若客户端对服务器的连接请求很频繁,永久连接将更高效 5、对于高并发业务,若果可能会碰到连接的冲击时,推荐使用长连接或连接池 6、服务器角度,可以节省创建连接的开销,但维持长连接需要内存 7、扩展性好的站点,大部分的访问不需要连接数据库,如果需要频繁访问数据库,可能会在流量增大时候产生性能问题,此时, 长短连接都无法解决问题,应该进行合理的设计和优化来避免性能问题

持久连接和连接池的区别

  • 长连接是一些驱动、驱动框架,ORM工具的特性,由驱动来保持连接句柄的打开,以便后续的数据库操作可以重用连接,从而减少数据库的连接开销
  • 连接池是应用服务的组件,可以通过参数来配置连接数、连接监测、连接的生命周期

参考:《MySQL DBA 修炼之道》

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linyb极客之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 何时使用
  • 组成
  • 连接池
    • 简介
    • 短连接
      • 简介
      • 长连接
        • 简介
        • 持久连接和连接池的区别
        • 参考:《MySQL DBA 修炼之道》
        相关产品与服务
        云数据库 SQL Server
        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档