PostgreSQL 查詢引擎源碼技術探析

李浩

買這商品的人也買了...

商品描述

<內容簡介>

PostgreSQL作為當今最先進的開源關係型數據庫,本書揭示PostgreSQL查詢引擎運行原理和實現技術細節,其中包括:基礎數據結構;SQL詞法語法分析及查詢語法樹;查詢分析及查詢重寫;子連接及子查詢處理;查詢訪問路徑創建;查詢計劃生成,等等。以深入淺出的方式討論每個主題並結合基礎數據結構、圖表、源碼等對所討論的主題進行詳細分析,以使讀者對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

目錄大綱