本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies

本文翻译了如下章节, 介绍数据库的客户端管理器组件:

Client manager

客户端管理器是一个处理与数据库客户端连接通信的组件。数据库的客户端可以是Web服务器,也可以是终端应用程序。数据库提供了各种访问数据库的接口,比较知名有:JDBC、ODBC、OLE-DB…

除通用接口外,各数据库也提供了一些专有的特色接口。

客户端管理器在处理查询操作请求时会做这样的一些事情:

  1. 首先做鉴权,即检查你是否具有访问数据库的权限(用户名和密码是否正确);然后检查是否有操作数据库的相应权限(表,数据的读写权限)。这些权限都是由DBA授予的。

  2. 然后会检查是否已经有线程管理该查询(没有的话分配)。

  3. 还会检查数据库服务器当前是否已经超负荷。

  4. 所有检查通过后,客户端管理器将等待获取数据库资源(计算资源、锁等)。如果等待超时,将关闭连接,返回错误信息告知客户端。

  5. 客户端管理器获取资源后将查询请求传递到查询管理器,任务交给下游处理。

  6. 数据库查询操作并不是一锤子买卖,一但客户端管理器从查询管理器中获取到部分数据,它就会先把这把这部分数据存储到缓存种并发给客户端。

  7. 查询过程一旦遇到错误(鉴权失败,SQL语法错误等),客户端管理器将关闭连接,释放资源,返回错误。

本文为博主原创文章,未经博主允许不得转载。其它文章请访问:http://blog.csdn.net/ylforever

最新文章

  1. 微信小程序体验(1):携程酒店机票火车票
  2. 我们常用,却容易忽视——CSS的BFC(Block formatting contexts)
  3. ActiveMQ消息存储持久化
  4. C++ 修饰名的格式探究
  5. iOS 里面 Swift与Objective-C混编,Swift与C++混编的一些比较
  6. 轻松掌握:JavaScript装饰者模式
  7. Training
  8. callee
  9. SSM-配置文件标签随笔-概要
  10. CSS hack常用方案(摘选)
  11. 带您理解SQLSERVER是如何执行一个查询的
  12. C#中DataTable行转列示例
  13. C#结构函数与base关键字
  14. android样式布局--->ListView(附上源代码)
  15. HDU 3625 Examining the Rooms
  16. JS - 全屏滚动
  17. POJ 1459-Power Network(网络流-最大流-ISAP)C++
  18. 201521123072《java程序设计》第五周学习总结
  19. 洛谷 P2073 送花【Treap】题解+AC代码
  20. eclipse 下载安装单元测试log4j的配置与搭建

热门文章

  1. docker swarm集群搭建
  2. 正本清源区块链——Caoz
  3. 【linux之find及awk】
  4. 编写一个js函数,该函数有一个n(数字类型),其返回值是一个数组,该数组内是n个随机且不重复的整数,且整数取值范围是[2,32]
  5. JS中的Undefined和Null的区别
  6. Python 关于super 的 用法和原理(挖坑)
  7. nodejs之socket.io模块——实现了websocket协议
  8. 笔记︱基于网络节点的node2vec、论文、算法python实现
  9. 小说接入UC浏览器内核技术对话(二)
  10. final、finally和finalize的区别