我正在看一些PostgreSQL表的创建,我偶然发现:
CREATE TABLE (
...
) WITH ( OIDS = FALSE );
我阅读了postgres提供的文档,我从OOP中了解了对象标识符的概念,但我仍然没有掌握,
- 为什么这样的标识符在数据库中有用?
- 缩短查询时间?
- 什么时候使用?
我正在看一些PostgreSQL表的创建,我偶然发现:
CREATE TABLE (
...
) WITH ( OIDS = FALSE );
我阅读了postgres提供的文档,我从OOP中了解了对象标识符的概念,但我仍然没有掌握,
OID基本上为包含在系统列(与用户空间列相反)中的每一行提供一个内置id.对于没有主键、有重复行等的表来说,这很方便.例如,如果有一个表有两个相同的行,并且要删除其中最早的一行,可以使用oid列.
OID是使用4字节无符号整数实现的.它们是not唯一的–OID计数器将以2²-1环绕.OID还用于识别数据类型(参见/usr/include/postgresql/server/catalog/pg_type_d.h
).
根据我的经验,大多数postgres支持的应用程序通常都没有使用该功能(可能部分是因为它们是非标准的),their use is essentially deprecated:
在PostgreSQL 8.1中,带有_OID的默认_为
在用户表中使用OID是非常重要的