postgres:id 每天自动增加数百万行。不好吗?
postgres: id auto-increment with millions of rows per day. is it bad?
在我的数据库中,我每天在 table 中保存数百万行,我在 2 周后删除所有行,因为我不再需要它们了。
我想知道添加主键 id 自动递增是好还是坏,否则我会达到太大的数字。
table 只包含插入,只要用户发出带有用户 ID、时间戳和命令等列的命令。所以要添加一个主键,我想我必须添加一个自动增量,它很快就会变得非常非常高。
考虑到插入量,我应该避免添加它吗?
Postgres 中的 "auto-incrementing" 功能由 serial
数据类型提供。这些在 documentation.
中有描述
如果您每天要插入数百万行,那么我建议您使用 bigserial
。您不必担心溢出或重置值。
这还不错,除非它会导致性能问题,并且您有证据证明自动递增是这些问题的根源,这不太可能。
坦率地说,每天 100 万行是花生。你会没事的。如果您希望您的场景持续 3 年以上,您应该使用 serial8
(64 位)而不是 serial
(32 位)。
在我的数据库中,我每天在 table 中保存数百万行,我在 2 周后删除所有行,因为我不再需要它们了。
我想知道添加主键 id 自动递增是好还是坏,否则我会达到太大的数字。
table 只包含插入,只要用户发出带有用户 ID、时间戳和命令等列的命令。所以要添加一个主键,我想我必须添加一个自动增量,它很快就会变得非常非常高。
考虑到插入量,我应该避免添加它吗?
Postgres 中的 "auto-incrementing" 功能由 serial
数据类型提供。这些在 documentation.
如果您每天要插入数百万行,那么我建议您使用 bigserial
。您不必担心溢出或重置值。
这还不错,除非它会导致性能问题,并且您有证据证明自动递增是这些问题的根源,这不太可能。
坦率地说,每天 100 万行是花生。你会没事的。如果您希望您的场景持续 3 年以上,您应该使用 serial8
(64 位)而不是 serial
(32 位)。