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

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

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

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

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

相关推荐

  • 台式机有无线网卡吗 台式机连接wifi需要什么硬件

    台式机有无线网卡吗(台式机连接wifi需要什么硬件)很多人的台式电脑都没有内置网卡,需要插入rj45水晶网线才能上网,今天就要给大家介绍一个可以让任何电脑都可以无线上网的设备,那就是无线网卡。无线网卡就是使你的电脑可以利用无线来上网的一个装

    2022年4月17日 生活小百科
    7
  • 十面埋伏是什么曲 《十面埋伏》是一首什么独奏曲

    十面埋伏是什么曲(《十面埋伏》是一首什么独奏曲)《十面埋伏》是一首中国著名琵琶传统大套武曲,同时也是中国十大古曲之一,乐曲磅礴悲壮,震撼人心,酣畅淋漓,自带杀气,描绘了楚王项羽当时被汉军围困走投无路,最后拔剑自刎的悲壮历史场景,故事性极强。

    2022年3月27日 生活小百科
    16
  • 手术后吃什么恢复快 手术刀口恢复吃什么好

    手术后吃什么恢复快(手术刀口恢复吃什么好)多吃些胡萝卜能够促进伤口的愈合,有利于伤口更快结痂,胡萝卜对视力也是有好处的,可以缓解视力疲劳,增加蛋白质的摄入量,促进伤口愈合,同时也可以减少黑色素的形成,能有效避免疤痕的产生,增加蛋白质的摄入量

    2022年4月13日
    6
  • 笔记本电脑字体太小怎么调 笔记本字体怎么调小

    笔记本电脑字体太小怎么调(笔记本字体怎么调小)电脑字体太小怎么办?如何把系统字体调的更大?下面就给不熟悉Win10系统的用户分享调节系统字体大小的具体操作步骤。解决办法:1,点击屏幕左下角的窗口键,如下图所示2,选择设置选项卡,如下图所示3

    2022年5月3日 生活小百科
    5
  • c型钢和槽钢的区别(12槽钢6米多少钱一根)

    c型钢和槽钢的区别(12槽钢6米多少钱一根)在选购槽钢之前,首先需要了解槽钢规格设定及分类、槽钢价格表等。只有了解了这些才能选购到自己满意的槽钢。下面就随小编来看看槽钢规格设定及分类、槽钢价格表,以供大家参考。槽钢规格设定槽钢的规格主要用高

    2022年2月25日
    13
  • 奥运金牌的主要材质(2008奥运金牌值多少钱)

    奥运金牌的主要材质(2008奥运金牌值多少钱)众所周知,能获得奥运会奖牌甚至是金牌那都是无限的荣耀,全世界那么多人口,那么多国家,那么多顶级运动员,想在奥运会上获得一枚金牌是要付出巨大的血汗。一些人口少的国家要拿到一枚奖牌,都高兴得不得了,

    2022年2月9日 生活小百科
    28
  • 市净率是什么意思 市净率用什么来表示

    市净率是什么意思(市净率用什么来表示)财务报表中有几个核心指标,比如市盈率、市净率、净利增长率、销售毛利润、资产负债率、大股东持股比例、股东户数的变化等等,投资者一定要搞懂他们的意思。今天小编给大家详细的科普下市净率是什么意思,股票的市净率

    2022年4月13日
    7
  • 强烈推荐的经典小说 50部必看经典小说言情

    强烈推荐的经典小说(50部必看经典小说言情)希行的《娇娘医经》超级好看,穿越古言,希行的封神之作,女主是从痴傻孩子苏醒过来,不知道自己是谁,所以没啥记忆,开篇就从救人展开,行文很清晰,从并州到江州再到京城为线,二换丫环,救堂兄,引雷鲨人,改

    2022年5月4日 生活小百科
    6
  • 什么软件可以跟踪定位免费(一款免费跟踪定位)

    什么软件可以跟踪定位免费(一款免费跟踪定位)【北斗定位2.0版民用精度达1.2米!普通人手机免费使用北斗定位2.0版】10月14日,中国信息通信研究院发布北斗高精度定位服务平台(北斗定位2.0版),将民用应用的手机定位精度提高到1.2米。只

    2022年3月14日
    11
  • 微信聊天记录同步两部手机软件(微信导出聊天记录)

    微信聊天记录同步两部手机软件(微信导出聊天记录)[Windows] WechatExporter1.9.0.2 聊天记录导出备份,支持Windows、MacOS平台支持导出为Text、HTML、PDF三种格式。导出的聊天记录页面可以设置为打

    2022年2月8日
    37

发表回复

登录后才能评论