# 第七部分。内部构件

这部分包含各种信息,可能对PostgreSQL开发人员有用。

目录

51.PostgreSQL内部结构概述

51.1. 查询的路径

51.2. 如何建立联系

51.3. 解析器阶段

51.4. PostgreSQL规则系统

51.5. 规划师/优化器

51.6. 遗嘱执行人

52.系统目录

52.1. 概述

52.2.pg_骨料

52.3.普甘

52.4.阿莫普

52.5.安普罗克酒店

52.6.pg_attrdef

52.7.pg_属性

52.8.pg_authid

52.9.pg_认证成员

52.10. pg_演员阵容

52.11. pg_类

52.12. pg_校勘

52.13. pg_约束

52.14. pg_转换

52.15. pg_数据库

52.16. pg_db_角色设置

52.17. pg_默认值_acl

52.18. pg_依赖

52.19. pg_说明

52.20. pg_enum

52.21. pg_事件_触发器

52.22. pg_扩展

52.23. pg_外部_数据_包装

52.24. pg_外国_服务器

52.25. pg_外国_表

52.26. pg_指数

52.27. pg_继承

52.28. pg_init_privs

52.29. pg_语言

52.30. pg_largeobject

52.31. pg_大对象_元数据

52.32. pg_名称空间

52.33. pg_类

52.34. pg_操作员

52.35. pg_家族

52.36. pg_分区_表

52.37. pg_政策

52.38. pg_程序

52.39. PGU出版物

52.40. pg_出版物_rel

52.41. pg_系列

52.42. pg_复制_来源

52.43. 重写

52.44. pg_seclabel

52.45. pg_序列

52.46. 普古·施恩

52.47. pg_-shdescription

52.48. pg_shseclabel

52.49. pg_统计

52.50. pg_统计_ext

52.51. pg_统计数据_外部数据

52.52. PGU订阅

52.53. pg_订阅_rel

52.54. pg_表空间

52.55. pg_变换

52.56. pg_触发器

52.57. pg_ts_配置

52.58. pg_ts_配置图

52.59. pg_t_dict

52.60. pg_ts_解析器

52.61. pg_t_模板

52.62. pg_型

52.63. pg_用户_映射

52.64. 系统视图

52.65. pg_可用_扩展

52.66. pg_可用_扩展_版本

52.67. pg_后端_内存_上下文

52.68. pg_配置

52.69. pg_光标

52.70. pg_文件_设置

52.71. pg_集团

52.72. pg_hba_文件_规则

52.73. pg_索引

52.74. pg_锁

52.75. pg_matviews

52.76. pg_政策

52.77. pg_准备的_声明

52.78. 准备好的

52.79. pg_出版物_表格

52.80. pg_复制_来源_状态

52.81. pg_复制_插槽

52.82. pg_角色

52.83. PGU规则

52.84. pg_seclabels

52.85. pg_序列

52.86. PGU设置

52.87. 皮尤阴影

52.88. pg_shmem_分配

52.89. pg_统计数据

52.90. pg_统计数据_扩展

52.91. pg_统计数据_扩展

52.92. pg_表

52.93. pg_时区_缩写

52.94. pg_时区_名称

52.95. pg_用户

52.96. pg_用户_映射

52.97. PGU视图

53.前端/后端协议

53.1. 概述

53.2. 消息流

53.3. SASL认证

53.4. 流复制协议

53.5. 逻辑流复制协议

53.6. 消息数据类型

53.7. 消息格式

53.8. 错误和通知消息字段

53.9. 逻辑复制消息格式

53.10. 自协议2.0以来的变化摘要

54.PostgreSQL编码约定

54.1. 格式化

54.2. 报告服务器内的错误

54.3. 错误消息样式指南

54.4. 杂项编码约定

55.母语支持

55.1. 对于译者来说

55.2. 对于程序员来说

56.编写过程语言处理程序

57.编写外国数据包装器

57.1. 外部数据包装函数

57.2. 外部数据包装回调例程

57.3. 外部数据包装辅助函数

57.4. 国外数据包装器查询规划

57.5. 外部数据包装中的行锁定

58.编写表格抽样方法

58.1. 采样方法支持函数

59.编写自定义扫描提供程序

59.1. 创建自定义扫描路径

59.2. 创建自定义扫描计划

59.3. 执行自定义扫描

60.遗传查询优化器

60.1. 查询处理是一个复杂的优化问题

60.2. 遗传算法

60.3. PostgreSQL中的遗传查询优化(GEQO)

60.4. 进一步阅读

61.表访问方法接口定义

62.索引访问方法接口定义

62.1. 索引的基本API结构

62.2. 索引访问方法函数

62.3. 索引扫描

62.4. 索引锁定注意事项

62.5. 索引唯一性检查

62.6. 指数成本估算函数

63.通用记录

64.B树索引

64.1. 介绍

64.2. B-树算子类的行为

64.3. B树支持函数

64.4. 实施

65.主要索引

65.1. 介绍

65.2. 内置运算符类

65.3. 可扩展性

65.4. 实施

65.5. 例子

66.标准普尔GiST指数

66.1. 介绍

66.2. 内置运算符类

66.3. 可扩展性

66.4. 实施

66.5. 例子

67.杜松子酒指数

67.1. 介绍

67.2. 内置运算符类

67.3. 可扩展性

67.4. 实施

67.5. 杜松子酒小窍门

67.6. 局限性

67.7. 例子

68.布林指数

68.1. 介绍

68.2. 内置运算符类

68.3. 可扩展性

69.散列索引

69.1. 概述

69.2. 实施

70.数据库物理存储

70.1. 数据库文件布局

70.2. 干杯

70.3. 自由空间地图

70.4. 能见度图

70.5. 初始化分叉

70.6. 数据库页面布局

71.系统目录声明和初始内容

71.1. 系统目录声明规则

71.2. 系统目录初始数据

71.3. BKI文件格式

71.4. BKI命令

71.5. 引导程序BKI文件的结构

71.6. BKI示例

72.规划者如何使用统计数据

72.1. 行估计示例

72.2. 多元统计实例

72.3. 规划者统计和安全

73.备份清单格式

73.1. 备份清单顶级对象

73.2. 备份清单文件对象

73.3. 备份范围对象