从技术上讲,什么是数据库连接?

Kor*_*gay 11 java mysql multithreading operating-system process

当我们说我们有一个"数据库连接"或"有几个连接打开的连接池"时,在技术层面,我们究竟意味着什么?

我的理解是:

数据库连接是指在数据库进程中运行的线程的链接,该线程被阻塞并等待另一个进程中另一个线程的输入.

这是正确的定义吗?

因此,当我在计算机中运行mysql和在其他计算机(或同一台计算机上运行,​​并不重要......)的Java应用程序时,当我执行类似的操作时:

conn.open();
Run Code Online (Sandbox Code Playgroud)

打开数据库连接..

mysql进程是否会为我创建一个新线程并阻止该线程并开始侦听输入?

客户端怎么样?如果我不关闭连接会怎么样?

Bet*_*sta 6

你知道什么是插座吗?这是教程中的简短但很好的描述。

您必须区分客户端和服务器端。我不知道 MySQL,但通常服务器端是这样实现的,连接新线程正在处理请求。

连接池用于最小化套接字打开开销。通常,您不关心通过连接(假设所有连接为同一用户)从数据库接收到的结果集。

您不想消耗资源,因此您希望保持良好状态,完成后关闭连接。我相信如果有一段时间没有活动(超时),今天的每台服务器都会结束连接。