关系型数据库进阶之客户端管理
在上一篇文章中我们介绍了数据库的总体架构,今天我们将和大家来一起分析一下其核心组件中的重要组成部分:客户端管理。
![client manager in databases](https://donggeitnote.com/wp-content/uploads/2020/08/image-31.png)
客户端管理,顾名思义它是用来处理和客户端之间的信息交互的。客户端可以是一个web的server或者一个终端的用户/应用。客户端可以通过各种不同的方式来访问数据库,比如JDBC, ODBC, OLE-DB等等。
当连接数据库的时候,会执行下面这些步骤:
- 客户端管理首先检查你的权限和认证,看你是否有相应的访问数据库的权限。这些权限都是通过DBA来设置的。
- 然后,它会检查看是否有可用的进程(或者线程)来管理你的query
- 再检查看相应的数据库是否处于很重的负载情况下。
- 得到相应的资源,这里会有一个timeout,假如一定时间还没有得到资源,则会timeout,并且关闭相应的连接以及返回一个可读的错误信息。
- 发送query到相应的query manager,你的query就被执行了
- Query 的过程并不是说全部返回,可能是一部分一部分返回的,所以它会把部分的返回值保存在一个buffer中,并且开始把它们分步发送回客户端。
- 假如有什么问题,它会断开连接,然后给出一个清晰的错误解释,并释放相关的资源
这就是整个数据库的客户端管理流程,其实还是蛮简单的,下一篇我们将会具体介绍更为核心的Query Manager部分。
Recent Comments