《PostgreSQL查询引擎源码技术探析》

《PostgreSQL查询引擎源码技术探析》 《PostgreSQL查询引擎源码技术探析》

  • 书名:《PostgreSQL查询引擎源码技术探析》:腾讯TDSQL数据库技术专家、MySQL技术专家力荐
  • 分类:计算机
  • 作者:李浩
  • 出版社:电子工业出版社
  • 出版年:2016-8-1
  • 售价:79
  • 装订:平装
  • 页码:340

《PostgreSQL查询引擎源码技术探析》 内容介绍:

PostgreSQL作为当今最先进的开源关系型数据库,《PostgreSQL查询引擎源码技术探析》揭示PostgreSQL查询引擎的运行原理和实现技术细节,其中包括:基础数据结构;SQL词法语法分析及查询语法树;查询分析及查询重写;子链接及子查询处理;查询访问路径创建;查询计划生成,等等。以深入浅出的方式讨论每个主题并结合基础数据结构、图表、源码等对所讨论的主题进行详细分析,以使读者对PostgreSQL查询引擎的运行机制及实现细节能有全面且深入的认识。 《PostgreSQL查询引擎源码技术探析》适合从事数据库领域相关研究人员、高等院校相关专业高年级本科生或研究生阅读,也可作为高等院校的数据库原理课程的有益补充,还可作为业界数据库相关人员的案头图书。《PostgreSQL查询引擎源码技术探析》有助于读者理解数据查询引擎内核的技术内幕。

《PostgreSQL查询引擎源码技术探析》 目录大纲:

第1 章 PostgreSQL 概述 1
1.1 概述 1
1.2 查询语句优化 3
1.2.1 工具类语句 4
1.2.2 查询类语句的处理 5
1.3 创建查询计划 8
1.4 小结 8
第2 章 基表数据结构 10
2.1 概述 10
2.2 数据结构 10
2.2.1 查询树Query 11
2.2.2 Select 型查询语句SelectStmt 13
2.2.3 目标列项TargetEntry 15
2.2.4 From…Where…语句FromExpr 16
2.2.5 范围表项RangeTblEntry/RangeTblRef 16
2.2.6 Join 表达式JoinExpr 18
2.2.7 From 语句中的子查询RangeSubSelect 19
2.2.8 子链接SubLink 20
2.2.9 子查询计划SubPlan 22
2.2 小结 23
2.3 思考 24
第3 章 查询分析 25
3.1 概述 25
3.2 问题描述 25
3.3 词法分析和语法分析(Lex&Yacc) 28
3.3.1 概述 28
3.3.2 词法分析器Lex 28
3.3.3 语法分析器Yacc 30
3.3.4 小结 36
3.3.5 思考 36
3.4 抽象查询语法树AST 37
3.5 查询分析 39
3.5.1 概述 39
3.5.2 查询分析—parse_analyze 40
3.5.3 查询语句分析—transformStmt 42
3.6 查询重写 54
3.6.1 概述 54
3.6.2 查询重写——pg_rewrite_query 54
3.7 小结 55
3.8 思考 56
第4 章 查询逻辑优化 57
4.1 概述 57
4.2 预处理 57
4.2.1 xxx_xxx_walker/mutator 的前世今生 59
4.2.3 对xxx_xxx_walker/mutator 的思考 60
4.3 查询优化中的数据结构 61
4.3.1 数据结构 62
4.3.2 小结 80
4.3.3 思考 81
4.4 查询优化分析 81
4.4.1 逻辑优化——整体架构介绍 82
4.4.2 子查询优化——subquery_planner 88
4.4.3 创建分组等语句查询计划—grouping_planner 142
4.4.4 创建查询访问路径—query_planner 150
4.4.5 小结 195
4.4.6 思考 196
第5 章 查询物理优化 198
5.1 概述 198
5.2 所有可行查询访问路径构成函数make_one_rel 200
5.2.1 设置基表的物理参数 202
5.2.2 基表大小估计—set_rel_size 203
5.2.3 寻找查询访问路径——set_base_rel_pathlists 214
5.2.4 添加查询访问路径—add_path 247
5.2.5 求解Join 查询路径—make_rel_from_joinlist 255
5.2.6 构建两个基表之间连接关系—make_join_rel 267
5.2.7 构建连接关系—build_join_rel 277
5.3 小结 291
5.4 思考 291
第6 章 查询计划的生成 293
6.1 查询计划的产生 293
6.2 生成查询计划—create_plan/create_plan_recurse 293
6.2.1 构建Scan 类型查询计划——create_scan_plan 295
6.2.2 构建Join 类型查询计划——create_join_plan 300
6.3 查询计划的阅读 305
6.4 小结 308
6.5 思考 308
第7 章 其他函数与知识点 310
7.1 AND/OR 规范化 310
7.2 常量表达式的处理—eval_const_expressions 314
7.3 Relids 的相关函数 316
7.4 List 的相关函数 319
7.5 元数据表Meta Table 320
7.6 查询引擎相关参数配置 324
结束语 328


微信扫一扫关注公众号

0 个评论

要评论图书请先登录注册

你也许想看:

Learning Redis

《Learning Redis》

Vinoo Das.Packt Publishing - ebooks Account.2015-7-1

“”

LPI LINUX认证权威指南

《LPI LINUX认证权威指南》

Jeffrey Dean.东南大学出版社.2007-8

“《LPILINUX认证权威指南》(第2版)依据LPI第一级认证(LPIC-1)最新的考试范围,汇整通过考试所需的知识与技...”

溯源中国计算机

《溯源中国计算机》

徐祖哲.生活·读书·新知三联书店.2015-6

“中国计算机的起源和发展与近半个世纪的中国社会发展紧密关联,当年的创业者们用今天看来性能不高的数字设备奇迹般地攻克了众多高...”

Machine Learning with R - Second Edition

《Machine Learning with R - Second Edition》

Brett Lantz.Packt Publishing - ebooks Account.2015-8-3

“”

软件工艺

《软件工艺》

Pete McBreen.人民邮电出版社.2004-5

“《软件工艺》证明了优秀程序员对于成功软件开发的决定性影响!它告诉我们: ·技术人员迫切需要转变观念。 ·技术不权是技术本...”

JAVA技术手册

《JAVA技术手册》

弗拉纳根.江苏东南大学出版社.2006-10

“《JAVA技术手册》(第5版)原书共一千两百余页,分为两大部分:第一部分为涵盖入门介绍、语法、面向对象程序设计、JaVa...”

The UNIX Hater's Handbook

《The UNIX Hater's Handbook》

Simson L. Garfinkel.IDG Books Worldwide, Inc..1994-6

“This book is for all people who are forced to use UNIX. It i...”

App程式設計入門

《App程式設計入門》

.松崗.2012-8

“搭配全新的iOS 5和Xcode 4.2,讓App開發變得更簡單了! 讓我們跟著彼得潘一起踏上App開發的冒險歷程。本書...”

深度探索嵌入式操作系统

《深度探索嵌入式操作系统》

彭东.机械工业出版社.2015-10

“相信很多同行和笔者以前一样,阅读过很多操作系统理论方面的书籍,感觉它们所讲述的理论大同小异且比较容易理解,但是真要我们自...”

打开Mac新世界2.0

《打开Mac新世界2.0》

五样,杨尊五.东南大学出版社.2009

“《打开Mac新世界2.0:Mac OS X初学者完全对应版》讲述了:刚踏入Mac堂界的您,是否一直遗憾于没有一本介绍Ma...”

Remote Pairing

《Remote Pairing》

Joe Kutner.The Pragmatic Bookshelf.2013-12-2

“Two heads are better than one, but only if they’re working o...”

测试驱动开发:实用指南 (平装)

《测试驱动开发:实用指南 (平装)》

阿斯特尔斯 (AstelsDavid).中国电力出版社.2004-9

“测试驱动开发(TDD)是近年来“敏捷革命”中最热的话题之一,但是,市面上鲜见与此相关的有深度的作品。这本书的出版填补了这...”

暗池

《暗池》

斯科特·帕特森 (Scott Patterson).机械工业出版社.2015-9-21

“”

Networked Life

《Networked Life》

Mung Chiang.Cambridge University Press.2012-9-30

“How does Google sell ad space and rank webpages? How does Ne...”

MATLAB编程

《MATLAB编程》

查普曼.科学出版社.2010-6

“《MATLAB编程(第2版)(英文影印版)》为国外高校电子信息类优秀教材(英文影印版)之一。《MATLAB编程(第2版)...”

An Introduction to GCC

《An Introduction to GCC》

Brian J. Gough,Richard M. Stallman.Network Theory Ltd..2004-3-30

“This manual provides a complete tutorial introduction to the...”

Unity Shader入门精要

《Unity Shader入门精要》

冯乐乐.人民邮电出版社.2016-5-1

“本书不仅要教会读者如何使用Unity Shader,更重要的是要帮助读者学习Unity中的一些渲染机制以及如何使用Uni...”

lucene in action中文版

《lucene in action中文版》

(美)Otis Gospodnetic;Erik Hatcher.电子工业.2007

“本书深入浅出地介绍了Lucene——一个开源的使用Java语言编写的全文搜索引擎开发包。它通过浅显的语言、大量的图注、丰...”

Learn Raspberry Pi with Linux

《Learn Raspberry Pi with Linux》

Peter Membrey,David Hows.Apress.2012-12-21

“”

你的个人信息安全吗(双色)

《你的个人信息安全吗(双色)》

李瑞民.电子工业出版社.2014-5

“没完没了的垃圾邮件,防不胜防的银行卡盗刷,莫名其妙的推销电话,闻虎色变的病毒木马……一时间,我们突然意识到,现代生活中,...”