Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
811df913
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
811df913
编写于
1月 30, 2005
作者:
B
Bruce Momjian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update OID item description.
上级
64428b8d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
26 addition
and
59 deletion
+26
-59
doc/FAQ
doc/FAQ
+11
-27
doc/src/FAQ/FAQ.html
doc/src/FAQ/FAQ.html
+15
-32
未找到文件。
doc/FAQ
浏览文件 @
811df913
Frequently Asked Questions (FAQ) for PostgreSQL
Last updated:
Wed Jan 19 14:45:22
EST 2005
Last updated:
Sat Jan 29 21:05:17
EST 2005
Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
...
...
@@ -956,32 +956,16 @@ BYTEA bytea variable-length byte array (null-byte safe)
4.15) What is an OID? What is a TID?
OIDs are PostgreSQL's answer to unique row ids. Every row that is
created in PostgreSQL gets a unique OID. All OIDs generated during
initdb are less than 16384 (from include/access/transam.h). All
user-created OIDs are equal to or greater than this. By default, all
these OIDs are unique not only within a table or database, but unique
within the entire PostgreSQL installation.
PostgreSQL uses OIDs in its internal system tables to link rows
between tables. These OIDs can be used to identify specific user rows
and used in joins. It is recommended you use column type OID to store
OID values. You can create an index on the OID field for faster
access.
OIDs are assigned to all new rows from a central area that is used by
all databases. If you want to change the OID to something else, or if
you want to make a copy of the table, with the original OIDs, there is
no reason you can't do it:
CREATE TABLE new_table(mycol int);
SELECT oid AS old_oid, mycol INTO tmp_table FROM old_table;
COPY tmp_table TO '/tmp/pgtable';
COPY new_table WITH OIDS FROM '/tmp/pgtable';
DROP TABLE tmp_table;
OIDs are stored as 4-byte integers, and will overflow at 4 billion. No
one has reported this ever happening, and we plan to have the limit
removed before anyone does.
Every row that is created in PostgreSQL gets a unique OID unless
created WITHOUT OIDS. OIDs are autotomatically assigned unique 4-byte
integers that are unique across the entire installation. However, they
overflow at 4 billion, and then the OIDs start being duplicated.
PostgreSQL uses OIDs to link its internal system tables together.
To uniquely number columns in user tables, it is best to use SERIAL
rather than OIDs because SERIAL sequences are unique only within a
single table. and are therefore less likely to overflow. SERIAL8 is
available for storing eight-byte sequence values.
TIDs are used to identify specific physical rows with block and offset
values. TIDs change after rows are modified or reloaded. They are used
...
...
doc/src/FAQ/FAQ.html
浏览文件 @
811df913
...
...
@@ -10,7 +10,7 @@
alink=
"#0000ff"
>
<H1>
Frequently Asked Questions (FAQ) for PostgreSQL
</H1>
<P>
Last updated:
Wed Jan 19 14:45:22
EST 2005
</P>
<P>
Last updated:
Sat Jan 29 21:05:17
EST 2005
</P>
<P>
Current maintainer: Bruce Momjian (
<A
href=
"mailto:pgman@candle.pha.pa.us"
>
pgman@candle.pha.pa.us
</A>
)
<BR>
...
...
@@ -1190,37 +1190,20 @@ BYTEA bytea variable-length byte array (null-byte safe)
<H4><A
name=
"4.15"
>
4.15
</A>
) What is an
<SMALL>
OID
</SMALL>
? What is
a
<SMALL>
TID
</SMALL>
?
</H4>
<P><SMALL>
OID
</SMALL>
s are PostgreSQL's answer to unique row ids.
Every row that is created in PostgreSQL gets a unique
<SMALL>
OID
</SMALL>
. All
<SMALL>
OID
</SMALL>
s generated during
<I>
initdb
</I>
are less than 16384 (from
<I>
include/access/transam.h
</I>
). All user-created
<SMALL>
OID
</SMALL>
s are equal to or greater than this. By default,
all these
<SMALL>
OID
</SMALL>
s are unique not only within a table or
database, but unique within the entire PostgreSQL installation.
</P>
<P>
PostgreSQL uses
<SMALL>
OID
</SMALL>
s in its internal system
tables to link rows between tables. These
<SMALL>
OID
</SMALL>
s can
be used to identify specific user rows and used in joins. It is
recommended you use column type
<SMALL>
OID
</SMALL>
to store
<SMALL>
OID
</SMALL>
values. You can create an index on the
<SMALL>
OID
</SMALL>
field for faster access.
</P>
<P>
O
<SMALL>
ID
</SMALL>
s are assigned to all new rows from a central
area that is used by all databases. If you want to change the
<SMALL>
OID
</SMALL>
to something else, or if you want to make a copy
of the table, with the original
<SMALL>
OID
</SMALL>
s, there is no
reason you can't do it:
</P>
<PRE>
CREATE TABLE new_table(mycol int);
SELECT oid AS old_oid, mycol INTO tmp_table FROM old_table;
COPY tmp_table TO '/tmp/pgtable';
COPY new_table WITH OIDS FROM '/tmp/pgtable';
DROP TABLE tmp_table;
</PRE>
<P>
O
<SMALL>
ID
</SMALL>
s are stored as 4-byte integers, and will
overflow at 4 billion. No one has reported this ever happening, and
we plan to have the limit removed before anyone does.
</P>
<P>
Every row that is created in PostgreSQL gets a unique
<SMALL>
OID
</SMALL>
unless created
<SMALL>
WITHOUT OIDS
</SMALL>
.
O
<SMALL>
ID
</SMALL>
s are autotomatically assigned unique 4-byte
integers that are unique across the entire installation. However,
they overflow at 4 billion, and then the O
<SMALL>
ID
</SMALL>
s start
being duplicated. PostgreSQL uses
<SMALL>
OID
</SMALL>
s to link its
internal system tables together.
</P>
<P>
To uniquely number columns in user tables, it is best to use
<SMALL>
SERIAL
</>
rather than O
<SMALL>
ID
</SMALL>
s because
<SMALL>
SERIAL
<SMALL>
sequences are unique only within a single
table. and are therefore less likely to overflow.
<SMALL>
SERIAL8
</SMALL>
is available for storing eight-byte sequence
values.
</P>
<P>
T
<SMALL>
ID
</SMALL>
s are used to identify specific physical rows
with block and offset values. T
<SMALL>
ID
</SMALL>
s change after rows
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录