|
1.2. 字段一个 字段 要么是一个给定表的用户定义 字段,要么是下列系统定义字段之一:
OID 是 32 位的数字并且在一个集群内是共用的.在一个大型或者长时间 使用的数据库里,这个计数器很有可能重叠.因此,做 OID 是唯一的假设 是很糟糕的习惯,除非你采取措施保证它是唯一的.在使用 OID 作为行 标识符的时候,我们建议你在每个准备使用 OID 的表的 OID 字段上创建一个 唯一约束.绝对不要假设 OID 是跨表唯一的;如果你需要数据库范围的 标识符,那么最好使用 tableoid 和行 OID 的组合. (译注∶如果是应用层的东西也可以创建整个数据库共用的序列.) (将来的 PostgreSQL 可能为每个表使用独立的 OID 计数器, 因此要实现 全局的唯一标识,你 必须 包括 tableoid .) 事务标识符也使 32 位的数字.在长时间运行的数据库里,事务 ID 也 有可能重叠.如果采取了合理的维护措施,那么这不是什么问题; 参阅 管理员手册 获取细节.不过, 长期(超过十亿次事务) 依赖事务 ID 的唯一性可不是什么好主意. 命令标识符也是 32 位的数字.这样,我们在一次事务里可以执行的命令 数就有了一个硬限制∶2 32 (四十亿)条. 实际上这个限制不是个问题 --- 要知道这个限制是 SQL 查询的数量,而不是处理的元组数量. 有关系统属性的更多信息,请参考 POSTGRES 规则系统的设计 . |