快速阅读《PostgreSQL数据库内核分析》

news/2024/7/9 23:17:23 标签: postgresql, big data, 数据库

第一章 PostgreSQL 系统概述

简单描述PostgreSQL的来源、特性和应用。
要用的话,可以看看数据库的具体命令。

第二章 PostgreSQL的体系结构

五大部分组成:
1、连接管理系统(对操作请求进行处理和分发)
2、编译执行系统(实现在物理存储介质中数据的操作)
3、存储管理系统(由索引管理器、内存管理器、外存管理器组成,存储和管理物理数据)
4、事务系统(对并发访问数据的一致性支持)
5、系统表(管理元数据信息)

在这里插入图片描述

第五章 查询编译

作用:数据库操作主要就是增删查改,但这些操作都是会离不开到查询这一步骤的,所以尽可能通过底层的编译优化查询时间,可以使得所有操作时间大大缩短。

查询编译是数据库一个非常重要的组件。通过此组件,用户提交的SQL语句可以生成数据库中最优执行计划。

当PostgreSQL的后台程序接收到查询请求后,首先会将其转发给查询分析模块(词法,语法和语义分析),筛选语句的类型,如果是建表、创建用户、备份等命令,则转发给Utility功能性命令处理模块进行处理。但是对于较为复杂的处理(INSERT、UPDATE、DELETE、SELECT)则需要为其构建查询树,然后进行查询的重写,生成新的查询树。然后根据动态规划或遗传算法,根据每个算子的代价获得最优的执行计划。最后去执行。

查询分析、查询重写这些都是编译原理里面学过的内容,属于非常底层的内容,所以就跳过了,师兄的那个思维导图也非常清晰。


http://www.niftyadmin.cn/n/1447150.html

相关文章

TODO:即将开发的第一个小程序

TODO:即将开发的第一个小程序微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。个人理解小程序是寄宿在微信平台上的一个前端框架,具有跨平台功能,安装方便&…

Python基础教程之List对象 转

Python基础教程之List对象 时间:2014-01-19 来源:服务器之家 投稿:root1、PyListObject对象typedef struct {PyObject_VAR_HEADPyObject **ob_item;Py_ssize_t allocated;} PyListObject;PyObject_VAR_HEAD中的obsize表示该list对象含有…

man命令--Linux命令应用大词典729个命令解读

内容来源于人民邮电出版社《Linux命令应用大词典》讲述729个命令,1935个例子学习Linux系统的参考书、案头书,遇到不懂的命令或命令选项一查即可争取每天都发布内容本文出自 “airfish2000” 博客,更多命令查看博客:http://airfish…

《PostgreSQL指南:内幕探索》第三章笔记

第三章 查询处理 主要是前面两个部分 第一部分就是简历介绍整个查询处理的流程 第二部分就是实现查询最优执行计划的步骤,这里会用单表查询作为一个非常简单的例子。分3小节讨论 第三部分,以一个更复杂的例子去讨论,多表查询。 3.1 概览…

VLDB创始人:为什么和其他相比,Greenplum是最好的?

获得技术资料内容,请访问Greenplum中文社区网站 本文翻译自VLDB Co-founder Paul Johnson发布于Linkedin上的《Why Greenplum Is The Best...Of The Rest》,请点击文章底部“阅读原文”查看原文链接 面向数据仓库领域的数据库众多,带头进入这…

为Win 2003加装视频压缩(转)

最近刚装了Windows server 2003,觉得挺好用的,但是新的问题就来了,玩CS时开头动画没有图像,只有声音。提示“视频无法使用,找不到vids:cvid解压缩程序”,这都是Windows server 2003中没有安装“…

应用程序启动管理 Winform版

★前言 开发这个小工具的想法主要是机器中安装了数据库,每次设置开机启动数据库服务的话,则系统启动很慢,每次都得手动到服务管理器中停止服务,很是繁琐,相信不少做开发的朋友会遇到同样的问题,就有了这个工…

uva 10587 - Mayor's posters(线段树)

题目链接:uva 10587 - Mayors posters 题目大意:就是有一个长度为n的公告板,每次在区间l,r上贴一张海报,问说最后还能看到几张不同的海报。 解题思路:线段树,区间更新,最后统计一下整…