北京网站软件制作,教手工做衣服的网站,哪些做园林的网站,做网站搭建和微信平台推广PostgreSQL 中的系统列
PostgreSQL 中的系统列是一组特殊的列#xff0c;用于存储关于表和视图的元数据信息。这些列是由 PostgreSQL 数据库自动创建和维护的#xff0c;并且不能直接修改或删除。
每个表都有多个系统列#xff0c;这些列由系统隐式定义。因此#xff0c;…PostgreSQL 中的系统列
PostgreSQL 中的系统列是一组特殊的列用于存储关于表和视图的元数据信息。这些列是由 PostgreSQL 数据库自动创建和维护的并且不能直接修改或删除。
每个表都有多个系统列这些列由系统隐式定义。因此这些名称不能用作用户定义列的名称。请注意这些限制与名称是否为关键字是分开的;引用名称将不允许您逃避这些限制。您实际上不需要担心这些列;只要知道它们的存在。 oid每个表和视图都有一个唯一的对象标识符OID可以用于在系统表中引用它们。 tableoid每个行都有一个指向所属表的 OID 的字段。它可以用于识别行属于哪个表即使在多态关系中也是如此。 xmin 和 xmax这些列用于记录行的事务信息。xmin 表示创建行的事务 IDxmax 表示删除或更新行的事务 ID。 ctid每个行都有一个唯一的行标识符CTID用于在物理存储中引用它们。 cmin 和 cmax这些列用于记录行的修改信息。cmin 表示插入行的事务 IDcmax 表示删除或更新行的事务 ID。 xmin、xmax、cmin 和 cmax 这四个列通常与 MVCC多版本并发控制相关联用于跟踪行的状态和版本信息。
这些系统列可以在查询中使用但在大多数情况下它们对于普通用户来说并不重要。它们主要用于数据库的内部管理和优化。
交易标识符也是 32 位数量。在长期存在的数据库中事务 ID 可以换行。考虑到适当的维护程序这不是一个致命的问题。然而从长远来看依赖交易 ID 的唯一性超过 10 亿笔交易是不明智的。
命令标识符也是 32 位数量。这将创建硬限制 23240亿单个事务中的 SQL 命令。在实践中此限制不是问题 - 请注意限制是针对 SQL 命令的数量而不是处理的行数。此外只有实际修改数据库内容的命令才会使用命令标识符。