短链和长链区别 长连接和短连接的区别
当数据库服务器和客户端位于不同的主机上时,需要建立网络连接进行通信 。客户端必须使用数据库连接来发送命令和接收回复和数据 。在通过提供给客户端数据库的驱动程序指定连接字符串之后,客户端可以与数据库建立连接 。可以查阅编程语言手册,了解短连接和长连接的使用方法 。
1. 短连接
短连接是指程序与数据库通信时需要建立连接 。执行操作后,连接关闭 。短连接简单来说就是每次操作数据库,都要打开和关闭数据库连接 。基本步骤是:连接→数据传输→关闭连接 。
在慢速网络中使用短连接会花费很多;在生产繁忙的系统中,连接也可能受到系统端口数量的限制 。如果每秒要建立数千个连接,连接断开后端口不会立即被回收,它们必须经历一个等待的“FIN”阶段,直到它们可以被回收,这可能导致端口资源不足 。在Linux上,可以通过调整/proc/sys/net/IP v4/IP _ local _ port _ range来扩大端口的使用范围;调整/proc/sys/net/IP v4/TCP _ fin _ time out来减少恢复延迟(如果要在应用服务器上调整这个参数,一定要小心!) 。
另一种方法是让主机使用多个IP地址 。端口号限制实际上是基于同一个IP:PORT 。如果主机添加IP,MySQL可以监听多个IP地址,客户端可以选择连接某个IP:PORT,这样就增加了端口资源 。
2. 长连接
长连接是指程序间的连接建立后,总是打开的,被后续程序重用 。使用长连接的初衷是为了减少连接的开销,虽然MySQL比其他数据库快很多 。
以PHP程序为例 。当收到永久连接的请求时,PHP将检查是否已经有一个相同的永久连接(之前已经打开过) 。如果存在,将直接使用该连接;如果不存在,则建立新的连接 。所谓“相同”连接是指使用相同的用户名和密码连接到同一台主机 。
从客户端的角度来看,使用长连接有一个好处 。没有必要每次都创建新的连接 。如果客户端频繁向MySQL服务器发出连接请求,永久连接会更高效 。对于高并发服务,如果可能遇到连接的影响,建议使用长连接或连接池 。
从服务器的角度来看,情况略有不同 。它可以节省创建连接的开销,但是维护连接也需要内存 。如果滥用长连接,可能会使用过多的MySQL服务器连接 。现代操作系统可以有成千上万个MySQL连接,但其中大部分可能都处于睡眠状态 。这种工作方式效率不够高,连接占用内存,也会导致内存浪费 。
对于扩展性好的网站,其实大部分的访问都不需要连接数据库 。如果用户需要频繁访问数据库,当流量增加时可能会出现性能问题 。这时候长短连接都解决不了问题,要进行合理的设计和优化,避免性能问题 。
如果客户机和MySQL数据库之间有连接池或代理,一般建议在客户机上使用短连接 。长连接的使用必须谨慎,不能滥用 。如果每秒钟没有几百个或者几千个新的连接请求,就不需要长连接,长连接并不能给你带来多大的好处 。在Java语言中,由于连接池的原因,如果控制得当,不会对数据库造成大的影响,但是PHP的长连接可能会导致数据库连接数超过限制或者占用内存过多 。
对此,R&D工程师、系统运维工程师、DBA需要保持联系,确定合理的连接策略 。不要不假思索地使用长连接 。
【短链和长链区别 长连接和短连接的区别】3. 连接池
因为一些数据库花费大量资金来创建和销毁连接,或者因为相对于所执行的特定数据操作,连接消耗了太多的资源,所以可能有必要添加连接池来提高性能 。
数据库连接池是由一些网络代理服务或应用服务器(如J2EE服务器)实现的功能 。它实现了一个持久连接的“池”,允许其他程序和客户端连接 。该连接池将由所有连接的客户端共享和使用 。连接池可以加快连接速度,减少数据库连接数,降低数据库服务器的负载 。
4. 持久连接和连接池的区别
连接是一些驱动程序、驱动程序框架和ORM工具的特性 。驱动程序保持连接句柄打开,以便后续的数据库操作可以重用该连接,从而减少数据库的连接开销 。连接池是应用服务器的一个组件,可以通过参数配置连接数、连接检测、连接生命周期等 。
如果连接池或者长连接使用了大量的连接,可能会超过数据库实例的限制,那么就需要注意连接相关的设置,比如最小和最大连接池的设置,以及php-fpm进程的数量等等 。,否则程序将无法申请新的连接 。
推荐阅读
- 西安火车站不出站换乘怎么找站台 苏州北和苏州站的区别
- 基金和信托的相同之处 信托与基金的区别
- 水粉还是水彩画出来的好看 水粉画和水彩画的区别
- 涂装板和木饰面板区别 饰面板和免漆板的区别
- 潜水艇角阀和九牧比哪个好 全屋角阀要怎么选
- 人造钻石和天然钻石的区别有哪些
- 油烟机|「用后真实感受」老板21A6和老板21A5哪款好用?区别在哪?
- 陶罐和铁罐告诉我们什么道理
- 金桔的功效和作用 对增强免疫力有很大的好处
- 紫薯和红薯的营养区别 紫薯特别适合三高人群