长连接和短连接的区别(短链和长链区别)

长连接和短连接的区别(短链和长链区别)当数据库服务器和客户端位于不同的主机时,就需要建立网络连接来进行通信。客户端必须使用数据库连接来发送命令和接收应答、数据。通过提供给客户端数据库的驱动指定连接字符串后,客户端就可以和数据库建立连接了。可

长连接和短连接的区别(短链和长链区别)

当数据库服务器和客户端位于不同的主机时,就需要建立网络连接来进行通信。客户端必须使用数据库连接来发送命令和接收应答、数据。通过提供给客户端数据库的驱动指定连接字符串后,客户端就可以和数据库建立连接了。可以查阅程序语言手册来获知通过何种方式使用短连接、长连接。

1. 短连接

短连接是指程序和数据库通信时需要建立连接,执行操作后,连接关闭。短连接简单来说就是每一次操作数据库,都要打开和关闭数据库连接,基本步骤是:连接→数据传输→关闭连接。

在慢速网络下使用短连接,连接的开销会很大;在生产繁忙的系统中,连接也可能会受到系统端口数的限制,如果要每秒建立几千个连接,那么连接断开后,端口不会被马上回收利用,必须经历一个“FIN”阶段的等待,直到可被回收利用为止,这样就可能会导致端口资源不够用。在Linux上,可以通过调整/proc/sys/net/ipv4/ip_local_port_range来扩大端口的使用范围;调整/proc/sys/net/ipv4/tcp_fin_timeout来减少回收延期(如果想在应用服务器上调整这个参数,一定要慎重!)。

另外一个办法是主机使用多个IP地址。端口数的限制其实是基于同一个IP:PORT的,如果主机增加了IP,MySQL就可以监听多个IP地址,客户端也可以选择连接某个IP:PORT,这样就增加了端口资源。

2. 长连接

长连接是指程序之间的连接在建立之后,就一直打开,被后续程序重用。使用长连接的初衷是减少连接的开销,尽管MySQL的连接比其他数据库要快得多。

以PHP程序为例,当收到一个永久连接的请求时,PHP将检查是否已经存在一个(前面已经开启了的)相同的永久连接。如果存在,则将直接使用这个连接;如果不存在,则建立一个新的连接。所谓“相同”的连接是指用相同的用户名和密码到相同主机的连接。

从客户端的角度来说,使用长连接有一个好处,可以不用每次创建新连接,若客户端对MySQL服务器的连接请求很频繁,永久连接将更加高效。对于高并发业务,如果可能会碰到连接的冲击,推荐使用长连接或连接池。

从服务器的角度来看,情况则略有不同,它可以节省创建连接的开销,但维持连接也是需要内存的。如果滥用长连接的话,可能会使用过多的MySQL服务器连接。现代的操作系统可以拥有几千个MySQL连接,但很有可能绝大部分都是睡眠(sleep)状态的,这样的工作方式不够高效,而且连接占据内存,也会导致内存的浪费。

对于扩展性好的站点来说,其实大部分的访问并不需要连接数据库。如果用户需要频繁访问数据库,那么可能会在流量增大的时候产生性能问题,此时长短连接都是无法解决问题的,所以应该进行合理的设计和优化来避免性能问题。

如果客户端和MySQL数据库之间有连接池或Proxy代理,一般在客户端推荐使用短连接。对于长连接的使用一定要慎重,不可滥用。如果没有每秒几百、上千的新连接请求,就不一定需要长连接,也无法从长连接中得到太多好处。在Java语言中,由于有连接池,如果控制得当,则不会对数据库有较大的冲击,但PHP的长连接可能导致数据库的连接数超过限制,或者占用过多的内存。

对此,研发工程师、系统运维工程师、DBA需要保持沟通,确定合理的连接策略,千万不要不假思索就采用长连接。

3. 连接池

由于一些数据库创建和销毁连接的开销很大,或者相对于所执行的具体数据操作,连接所耗的资源过多,此时就可能需要添加连接池来改进性能。

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

4. 持久连接和连接池的区别

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

如果连接池或长连接使用的连接数很多,有可能会超过数据库实例的限制,那么就需要留意连接相关的设置了,比如连接池的最小、最大连接数设置,以及php-fpm的进程个数等,否则程序将不能申请新的连接。

【版权声明】叽叽歪歪吧提醒您:请在浏览本网站关于《长连接和短连接的区别(短链和长链区别)》信息时,请您务必阅读并理解本声明。本站部分内容以及图片来源于商家投稿和网络转载,如网站发布的有关的信息侵犯到您的权益,请及时与我们取得联系,邮箱:20451 17252#qq。com,我们会尊重您的决定并当天作出删除处理。

(0)
上一篇 2022年3月2日 14:10:54
下一篇 2022年3月2日 14:20:54

相关推荐

  • 微信单向好友是什么意思 单向好友是指他删除了我吗

    微信单向好友是什么意思(单向好友是指他删除了我吗)1.轻信清理助手惹麻烦张琴是一名微商,因为业务原因,好友越来越多,目前已经达到4000多人。由于好友的上线时5000千人,为了扩大生意圈,张琴想清理一下自己的好友,把已经将她屏蔽和删除的好友

    2022年4月23日
    7
  • 电脑的电源管理在哪里 笔记本电源设置

    电脑的电源管理在哪里 笔记本电源设置[文章摘要]系统的电源选项与机器,睡眠,休眠等有关。当我们按电源按钮或合上笔记本电脑盖时,在大多数情况下,默认设置为使系统进入睡眠状态并输入低功耗状态,但有时您不希望系统在合上机盖时进入睡眠状态,因为仍在

    2023年3月3日 生活小百科
    0
  • 隆鑫在哪里 兴隆山

    隆鑫在哪里 兴隆山亲爱的友友们,我知道我错了,请友友们把我原谅了,最近因为工作忙,都没有跟大家一起分享经典的消息了。今天为了弥补友友们一颗期盼已久的心,给大家带来一个重磅消息!希望能让友友们的心灵得到安慰,兰州市也公布了食品药品安全示范街、

    2023年3月10日 生活小百科
    0
  • 电脑恢复到某个时间点 电脑恢复到几小时前

    电脑恢复到某个时间点(电脑恢复到几小时前)Hello,小伙伴们打扎好。最近我又有在折腾我的电脑,于是又涉及到了系统的一些问题。首先来说说我们大家在使用电脑的时候会遇到的一类与系统相关的痛点问题,比如:系统崩溃不能使用、功能异常、又或者是其他

    2022年4月18日 生活小百科
    5
  • 深圳好玩的免费景点(深圳值得一去的古村古镇)

    深圳好玩的免费景点(深圳值得一去的古村古镇)马上就到端午小长假大家准备好去哪玩了吗这里给你们推荐一波好去处重要的是人少、景美,还免费在深圳,高楼大厦看多了不妨来这些古村、古城走走宝安区凤凰古村凤凰山脚下的绝美古村古村就在凤凰山的脚下这里的建

    2022年2月24日 生活小百科
    11
  • 飞行模式有辐射吗(飞行模式与关机的区别)

    飞行模式有辐射吗(飞行模式与关机的区别)手机飞行模式到底有什么用?谁有谁的看法,大概如下:文艺青年:手机每日都要忙于工作,总要有个请假的功能。普通青年:这个功能就是能拦截一切通话的功能。逗比青年:谁都有一个飞翔的梦,更别是人手一部的手机了。

    2022年3月11日 生活小百科
    17
  • 鼻烟粉对身体有害吗 用鼻烟对鼻炎有什么好处

    鼻烟粉对身体有害吗(用鼻烟对鼻炎有什么好处)所谓良药苦口,大多数人都不喜欢吃药。如果想要达到治疗疾病的目的,是否能够像吸烟一样把药物“抽”进体内呢?广东省人民医院胸外科主任乔贵宾教授解释,随着医疗技术水平的提高,目前已经实现了这个想法。在生

    2022年4月27日
    16
  • 手机丢了没开定位怎么找(华为手机开定位丢了能找回吗)

    手机丢了没开定位怎么找(华为手机开定位丢了能找回吗)来源:环球网【环球网智能综合报道】移动互联网时代,个人设备承载了大量的私人信息,一旦泄露将会对用户生活带来很大影响。如何将遗失设备的损失降到最低?华为云空间自带的人性化功能“查找设备”将有

    2022年2月5日
    15
  • 哪里可以卖号 在哪里可以秒卖号

    哪里可以卖号 在哪里可以秒卖号首先,快手自播可以帮助品牌在快手上做增量。海爪网其次,快手自播可以帮助品牌收割全渠道的溢出流量。海爪网以上两个量(销量和流量)都是不会影响其他渠道生意的,当然不影响的核心是不破价,不单独为了快手直播伤害其他渠道

    2023年4月13日
    1
  • 水草泥和陶粒的区别(水草泥可以降低ph值吗)

    水草泥和陶粒的区别(水草泥可以降低ph值吗)今天呢给小白鱼友们分享一些如何开缸的经验吧,希望能帮到你。很多鱼友呢尤其是一些小白鱼友问我最多的话题就是,我看了你的视频我也准备开个草缸,可我不知道要配些什么?我相信很多新手都会遇到这样的问题,我

    2022年2月26日 生活小百科
    45

发表回复

登录后才能评论