• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

【连载】关系型数据库是如何工作的?(9)

mysql 搞代码 4年前 (2022-01-09) 10次浏览 已收录 0个评论

查询管理器 查询管理是一个数据库强大与否的一个判断指标。通过查询管理,可以把一个糟糕的查询语句转换为一段快速执行的代码,代码执行后返回结果给客户端管理器。整个过程分为多步: 查询首先被解析并检查其有效性; 重写查询并删除不必要的操作,另外做一

查询管理器

查询管理是一个数据库强大与否的一个判断指标。通过查询管理,可以把一个糟糕的查询语句转换为一段快速执行的代码,代码执行后返回结果给客户端管理器。整个过程分为多步:

  • 查询首先被解析并检查其有效性;
  • 重写查询并删除不必要的操作,另外做一些预优化;
  • 为了提升性能进行必要的优化,最终转换为一个执行计划;
  • 编译执行计划;
  • 最后运行执行计划。

在读了这一章节之后,如果对查询优化想更深入的理解,我推荐阅读以下资料:

  • 19本文来源gao($daima.com搞@代@#码(网579年发表的一篇最早的关于基于成本优化的论文: Access Path Selection in a Relational Database Management System。这篇论文只有12页,只要具备计算机科学中级水平就可以理解。
  • 关于DB 9.X如何优化查询的深度介绍:DB2 for Linux, UNIX, and Windows Optimizer。
  • 一篇关于PostgreSQL如何优化查询的详细介绍:Explaining the Postgres Query Optimizer。这篇非常易于理解,因为它并不是从PostgreSQL的算法角度介绍,而是展示了PostgreSQL的查询计划。
  • SQLite官方优化文档:The SQLite Query Planner。它很容易读懂,以你为SQLite优化规则很简单;但是它仅仅解释了优化器如何工作。
  • SQL Server 2005优化查询的介绍:Understanding Query Processing and Query Plans in SQL Server
  • Orcale 12c优化白皮书:Optimizer with Oracle Database 12c
  • 《DATABASE SYSTEM CONCEPTS》的作者两篇关于查询优化的理论课程,它们主要聚焦于磁盘IO:Chapter 12: Query Processing、Chapter 13: Query Optimization
  • 还有一篇我找到的更容易理解的只介绍join操作和磁盘IO的理论课程:Datenbanksysteme II: Implementation of Database Systems

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:【连载】关系型数据库是如何工作的?(9)
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址