37.1. 可扩展性的工作原理

PostgreSQL 是可扩展的,因为它的操作是目录驱动的。如果您熟悉标准的关系数据库系统,就会知道它们将有关数据库,表,列等的信息存储在通常称为系统目录中。 (某些系统将其称为数据字典.)目录在用户看来就像其他表一样,但是 DBMS 在其中存储其内部簿记。 PostgreSQL 与标准关系数据库系统之间的一个主要区别是 PostgreSQL 在其目录中存储了更多信息:不仅包括有关表和列的信息,而且还包括有关数据类型,函数,访问方法等的信息。用户可以修改这些表,并且由于 PostgreSQL 的操作基于这些表,因此这意味着 PostgreSQL 可以由用户扩展。相比之下,常规数据库系统只能通过更改源代码中的硬编码过程或加载由 DBMS 供应商专门编写的模块来扩展。

PostgreSQL 服务器还可以通过动态加载将用户编写的代码合并到自身中。也就是说,用户可以指定一个实现新类型或函数的目标代码文件(例如,共享库),PostgreSQL 将根据需要加载它。用 SQL 编写的代码添加到服务器上变得更加简单。这种“实时”修改操作的能力使 PostgreSQL 特别适合于新应用程序和存储结构的快速原型制作。