00:00
好,那么数据库连接池这个概念你必须要整整明白啊,所以我们还得再梳理一下,都是一堆新的概念,没见过,那么数据库连接池是干嘛的?是干这个。为什么要有数据库连接池是这样的,这是我当前的客户端,哎,这是我的那个数据库服务器。我们过去的时候,我们是不是直接从客户端发请求到数据库服务器连接上这个数据库。呃,服务器,然后里面去做增删改,查成完了以后将结果返回来,过去我们是不是这么看。其实你不知道,这种干事极其耗时的。如果你的数据库服务器就是在本单位,在本公司的本机房中,一般数据库服务器都会单独的一台机器充当服务器的功能,这是还算好的。很多时候,当我们的项目发布出去以后,我们的。Tom cat发布出去的这个服务跟我们的数据库服务完全是两台机器,甚至是两个地方。啊,我们会专门找那个数据库服务托管的那种机构,把我的数据库托管过,托管过去,这样的话意味着一个什么样的问题,有这么一个问题。
01:10
比如说你当前的客户端是在北京啊,或者是全国哪个城市都有可能,但是呢,你的数据库服务器呢,在上海。这很有可能,太常见了啊。那么你的数据库服务器在上海,你现在要连到上海的某台数据库服务器上,你首先得得发出请求。然后呢,得到达当前的这个数据库服务器,然后要还要看进连接到这个数据库服务器,要进行N次握手来确定这个连接是有效的啊,然后呢,再来进行数据库的用户名和密码的安全性的验证,你要穿破他的防火墙,然后来进行安全性的验证,上用户名和密码都对了,然后让你来访问这个数据库,你就查了一条数据就走了,然后当你结束这个操作的时候,这个链连接是全部是被断开的。
02:05
这个能理解吧,我们以前干的活都是断开的,等你再发出请求,这一套还得再来一遍。这个是整个数据库访问中最最耗时的操作。你如果都这么干的话,你就甭想了,你这项目效率一定不会高,尤其那种并发的项目,光这个连接你都搞掉大半大半。断的这种时间。不会这么干的啊,所以啊,所以不会这么干,那应该怎么干呢。所有好的这种数据库的访问都会这么干。啊,然后呢,我会中间上一个数据库连接池。会搞一个池子。啊,数据库连接池,它叫数据库连接池。你琢磨琢磨啊,这是我们当前的客户端。这是我们当前的数据库服务。
03:02
这个是我们的连接池啊。那么也就意味着我这个数据库连接是干嘛?你既然每次建立连接是你最耗时的,那我就在这建立一堆的连接。啊,建立一堆的这个链接,这个链接我已经建好放着。好,那么我建好这个连接,哎,我这一堆的数据库的连接。我这个连接呢,都是跟数据库是连着的。我跟数据库的这个,这数据库的服务,这连接都是在的,都是通的,都是联通的。我这些链接都已经做好,放在这儿,然后当你的客户端发出连接请求的时候,要去访问数据库的时候,我只是把我做好的链接给他。我把做好的连接给他,然后让他用,完了以后,他肯定要close,要断开连接,断开连接的时候,我只是将这个连接还回到池子里,别人又可以用。
04:01
我在这做好一堆的连接,你从此以后你不再需要频繁的跟真正的数据库服务去创建连接,销毁,然后穿过防火墙,然后N不握手,然后验证用户名和密码,然后再做连接,不需要。能明白吗?就当你需要的时候,你把这个链接就拿走就完了,哎,你需要的时候,你把这个链接需要一个请求一个链接,就比如说你创建一个数据库的连接,那么只是从这个里面给你扔一个链接过来。啊,任意连接过来,你你就用这个连接是连的数据库的。你在这用,用完了以后,当你用完了关闭的时候,诶啪,只是把这个连接还回到数据库连接池,它并没有真正的断开,只是把它还回来就完了,这就是有了数据库连接池以后,可以大大提高我们访问的效率,无论是增删改。你只要不去跟数据库做连接,你的效率就很高。能听懂吗?这就是连接池的作用。
05:00
这个里面其实有很多设置,包括最大可用的连接个数,最大空闲连接个数,然后连接超时,呃,连接的那个就是各种一堆的这种参数的配置,我不要求你们去配,为啥没必要。现在买be框架提供的这个默认的它的数据库连接池已经为你提供了最优配置,你现在用的不熟,你别自己去配,你配不好就用它默认的配置,就是最优配置,妥妥的,能听懂吗?啊,所以这个呢,就是数据库连接池的这个基本概念。
我来说两句