首页 > 数据库 >数据库连接池

数据库连接池

时间:2023-06-21 22:11:45浏览次数:57  
标签:数据库 TCP 查询 SQL 连接 连接池

最近写项目碰到数据库连接池,大概记录一下是干嘛的,后续持续补充:

应用程序和数据库建立连接的过程是这样的:

  1. 首先通过TCP协议的三次握手和数据库服务器建立连接,然后发送数据库用户账号密码,等待数据库验证用户身份。

2. 完成用户身份验证后,系统才可以提交SQL语句到数据库执行。

3. 好了这个时候假设我们不使用数据库连接池,那么完成一次SQL查询后,我们还要把连接关闭,关闭连接就需要和数据库通信告诉它我们要断开连接了然后再TCP四次挥手最后完成关闭。

这个过程中每一次发起SQL查询所经历的TCP建立连接,数据库验证用户身份,数据库用户登出,TCP断开连接消耗的等待时间都是可以避免的,这明显是一种浪费。打个比方,你去网吧去玩游戏,每次去到呢先插网线,然后开机登录游戏,玩了一会儿要去上厕所,你就退出游戏,然后关机拔网线。去完厕所回来就又重新插网线开机登游戏。

有没有觉得上面例子中的行为很扯蛋,所以每次SQL查询都创建链接,查询完后又关闭连接这个做法本身就很扯蛋。合理的做法就应该是系统启动的时候就创建数据库连接,然后需要使用SQL查询的时候,就从系统拿出数据库连接对象并提交查询,查询完了就把连接对象还给系统。系统在整个程序运行结束的时候再把数据库连接关闭。考虑到一般数据库应用都是Web多用户并发应用,那么只有一个数据库连接对象肯定不够用,所以系统启动的时候就应该多创建几个数据库连接对象供多个线程使用,这一批数据库连接对象集合在一起就被称之为数据库连接池。

数据库连接池就是典型的用空间换时间的思想,系统启动预先创建多个数据库连接对象虽然会占用一定的内存空间,但是可以省去后面每次SQL查询时创建连接和关闭连接消耗的时间。

标签:数据库,TCP,查询,SQL,连接,连接池
From: https://www.cnblogs.com/xkge/p/17497215.html

相关文章

  • 时序数据库 TDengine 与腾讯云多个产品线完成兼容性互认证明
    随着数字经济蓬勃发展,数据成为驱动企业数字化转型的关键生产要素,如何加强对数据资源的治理利用、实现数据洞察、激活数据价值正成为亟待解决的问题。在此背景下,数据库与操作系统、云平台等国产化软件相互结合赋能成为解决问题的思路之一。 近日,经过数月努力,涛思数据旗下时序数......
  • 视频融合平台EasyCVR迁移数据库报错1146是什么原因?该如何解决?
    EasyCVR视频融合平台基于云边端协同架构,具有强大的数据接入、处理及分发能力。平台支持多协议接入,包括:国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等,对外可分发多格式视频流,包括RTSP、RTMP、FLV、HLS、WebRTC等。我们在此前的文章中也介绍过关于EasyC......
  • PyMySQL及数据库连接池
    1PyMySQL及数据库连接池PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,由于频繁连接数据库很耗时,因此将PyMySQL对数据库的一系列操作封装到一个类中,实现连接一次数据库就可以完成多次操作,以提高性能。2普通的数据库连接importpymysqlclassSQLHelper(ob......
  • Lowes EDI 项目数据库方案开源介绍
    近期为了帮助广大用户更好地使用EDI系统,我们根据以往的项目实施经验,将成熟的EDI项目进行开源。用户安装好知行之桥EDI系统之后,只需要下载我们整理好的示例代码,并放置在知行之桥指定的工作区中,即可开始使用。今天的文章主要为大家介绍LOWE'SEDI项目,了解如何获取开源的项目......
  • PG-DBA培训04:PostgreSQL数据类型与数据库设计规范
    一、风哥PG-DBA培训04:PostgreSQL数据类型与数据库设计规范本课程由风哥发布的基于PostgreSQL数据库的系列课程,本课程属于PostgreSQL数据库SQL开发与应用实战阶段之PostgreSQL数据类型与数据库设计规范,学完本课程可以掌握PostgreSQLSQL语句基础讲解,PostgreSQLSQL语言基础知识,安......
  • PG-DBA培训01:PostgreSQL数据库基础入门培训
    一、风哥PG-DBA培训01:PostgreSQL数据库基础入门培训课程本课程由风哥发布的基于PostgreSQL数据库的系列课程,本课程属于PostgreSQL数据库实战入门与安装配置阶段之PostgreSQL数据库基础入门培训课程,学完本课程可以掌握PostgreSQL数据库简介,PostgreSQL行业生态应用,PostgreSQL工作与......
  • PG-DBA培训01:PostgreSQL数据库基础入门培训
    一、风哥PG-DBA培训01:PostgreSQL数据库基础入门培训课程本课程由风哥发布的基于PostgreSQL数据库的系列课程,本课程属于PostgreSQL数据库实战入门与安装配置阶段之PostgreSQL数据库基础入门培训课程,学完本课程可以掌握PostgreSQL数据库简介,PostgreSQL行业生态应用,PostgreSQL工作与就......
  • PG-DBA培训04:PostgreSQL数据类型与数据库设计规范
    一、风哥PG-DBA培训04:PostgreSQL数据类型与数据库设计规范本课程由风哥发布的基于PostgreSQL数据库的系列课程,本课程属于PostgreSQL数据库SQL开发与应用实战阶段之PostgreSQL数据类型与数据库设计规范,学完本课程可以掌握PostgreSQLSQL语句基础讲解,PostgreSQLSQL语言基础知识,安装......
  • laravel数据库模型蛇形命名自动转换驼峰命名
    2023年6月20日15:10:59我看了各种方案,但是多多少少都有各种问题建议使用https://github.com/kirkbushell/eloquence安装composerrequirekirkbushell/eloquence添加到provider添加eloquenceserviceprovider在你的config/app.php文件中'providers'=>[/......
  • 稳,从数据库连接池 testOnBorrow 看架构设计 | 京东云技术团队
    本文从CommonsDBCPtestOnBorrow的作用机制着手,管中窥豹,从一点去分析数据库连接池获取的过程以及架构分层设计。以下内容会按照每层的作用,贯穿分析整个调用流程。1️⃣框架层commons-poolTheindicationofwhetherobjectswillbe validatedbeforebeingborrowed fromthe......