PostgreSQL查詢引擎源碼技術探析 | 被動收入的投資秘訣 - 2024年5月

PostgreSQL查詢引擎源碼技術探析

作者:李浩
出版社:電子工業
出版日期:2016年08月01日
ISBN:9787121294815
語言:繁體中文

PostgreSQL作為當今先進的開源關系型數據庫,本書揭示PostgreSQL查詢引擎運行原理和實現技術細節,其中包括:基礎數據結構;SQL詞法語法分析及查詢語法樹;查詢分析及查詢重寫;子連接及子查詢處理;查詢訪問路徑創建;查詢計划生成,等等。以深入淺出的方式討論每個主題並結合基礎數據結構、圖表、源碼等對所討論的主題進行詳細分析,以使讀者對PostgreSQL查詢引擎的運行機制及實現細節能有全面且深入的認識。具有多年軟件開發經驗,現任職於北大方正信息產業集團基礎軟件中心(上海)擔任數據庫架構師,主要負責查詢引擎查詢優化方面工作。曾參與方正智睿系列數據庫研發,主要負責查詢引擎模塊的設計和開發,並擁有數十項發明專利。主要研究興趣包括:查詢引擎、大規模並行處理系統(MPP)及SQL on Hadoop相關系統。

第1章 PostgreSQL概述11.1概述11.2查詢語句優化31.2.1工具類語句41.2.2查詢類語句的處理51.3創建查詢計划81.4小結8第2章 基表數據結構102.1概述102.2數據結構102.2.1查詢樹Query112.2.2Select型查詢語句SelectStmt132.2.3目標列項TargetEntry152.2.4From…Where…語句FromExpr162.2.5范圍表項RangeTblEntry/RangeTblRef162.2.6Join表達式JoinExpr182.2.7From語句中的子查詢RangeSubSelect192.2.8子鏈接SubLink202.2.9子查詢計划SubPlan222.2小結232.3思考24第3章 查詢分析253.1概述253.2問題描述253.3詞法分析和語法分析(Lex&Yacc)283.3.1概述283.3.2詞法分析器Lex283.3.3語法分析器Yacc303.3.4小結363.3.5思考363.4抽象查詢語法樹AST373.5查詢分析393.5.1概述393.5.2查詢分析——parse_analyze403.5.3查詢語句分析——transformStmt423.6查詢重寫543.6.1概述543.6.2查詢重寫——pg_rewrite_query543.7小結553.8思考56第4章 查詢邏輯優化574.1概述574.2預處理574.2.1xxx_xxx_walker/mutator的前世今生594.2.3對xxx_xxx_walker/mutator的思考604.3查詢優化中的數據結構614.3.1數據結構624.3.2小結804.3.3思考814.4查詢優化分析814.4.1邏輯優化——整體架構介紹824.4.2子查詢優化——subquery_planner884.4.3創建分組等語句查詢計划——grouping_planner1424.4.4創建查詢訪問路徑——query_planner1504.4.5小結1954.4.6思考196第5章 查詢物理優化1985.1概述1985.2所有可行查詢訪問路徑構成函數make_one_rel2005.2.1設置基表的物理參數2025.2.2基表大小估計——set_rel_size2035.2.3尋找查詢訪問路徑——set_base_rel_pathlists2145.2.4添加查詢訪問路徑——add_path2475.2.5求解Join查詢路徑——make_rel_from_joinlist2555.2.6構建兩個基表之間連接關系——make_join_rel2675.2.7構建連接關系——build_join_rel2775.3小結2915.4思考291第6章 查詢計划的生成2936.1查詢計划的產生2936.2生成查詢計划——create_plan/create_plan_recurse2936.2.1構建Scan類型查詢計划——create_scan_plan2956.2.2構建Join類型查詢計划——create_join_plan3006.3查詢計划的閱讀3056.4小結3086.5思考308第7章 其他函數與知識點3107.1AND/OR規范化3107.2常量表達式的處理——eval_const_expressions3147.3Relids的相關函數3167.4List的相關函數3197.5元數據表MetaTable3207.6查詢引擎相關參數配置324結束語328

隨着移動互聯的飛速發展,「數據」已成為當今最寶貴的資源;誰掌握了數據,誰就掌握了無盡的寶藏。而如何有效地管理這些海量數據則成為擺在人們面前的首要問題。從計算機出現以來,人們便孜孜不倦地追求着高效管理數據的辦法,IBM的System R,U.C. Berkeley PostgreSQL以及Oracle MySQL的誕生,無一不表明人們對於高效、快捷的數據管理的不懈追求。


相關書籍