# 38.1.可扩展性的工作原理
PostgreSQL是可扩展的,因为它的操作是目录驱动的。如果您熟悉标准关系数据库系统,您就会知道它们将有关数据库、表、列等的信息存储在通常所说的系统目录中。(一些系统称之为数据字典。)目录在用户看来就像其他任何表格一样,但DBMS将其内部簿记存储在其中。PostgreSQL和标准关系数据库系统之间的一个关键区别是,PostgreSQL在其目录中存储了更多的信息:不仅是关于表和列的信息,还包括关于数据类型、函数、访问方法等的信息。用户可以修改这些表,因为PostgreSQL的操作基于这些表,这意味着用户可以扩展PostgreSQL。相比之下,传统的数据库系统只能通过更改源代码中的硬编码过程或加载DBMS供应商专门编写的模块来扩展。
此外,PostgreSQL server还可以通过动态加载将用户编写的代码整合到自身中。也就是说,用户可以指定实现新类型或函数的目标代码文件(例如,共享库),PostgreSQL将根据需要加载该文件。用SQL编写的代码更容易添加到服务器中。这种“动态”修改操作的能力使PostgreSQL特别适合于新应用程序和存储结构的快速原型设计。