postgresql - PostgreSQL ALTER COLUMN TYPE int 到 bigint 的持续时间

标签 postgresql type-conversion time-complexity postgresql-10

假设我有一个表,其 id 是一个 INTEGER GENERATED BY DEFAULT AS IDENTITY

如果将来 integer 太小,我需要记录如何更改类型,我需要将 id 类型从 integer 更改为 bigint。我主要担心更改的时间复杂度,因为当表中的行数接近整数类型可以存储的最大数量时,它很可能会发生。

以下命令的时间复杂度是多少?

ALTER TABLE project ALTER COLUMN id TYPE BIGINT;

最佳答案

此命令必须重写整个表,因为 bigint 占用 8 个字节的存储空间,而不是 integer 的 4 个字节。发生这种情况时,表将被锁定,无法进行并发访问,因此对于大表,您应该为更长的停机时间做好准备。

如果您认为这可能是必要的,请在表仍然很小的时候尽快执行更改。

关于postgresql - PostgreSQL ALTER COLUMN TYPE int 到 bigint 的持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53840442/

相关文章:

mysql - 如何在sql中逐步排序字段

java - 为什么将短变量赋值给 Integer 引用会产生编译时错误?

c# - VB6 到 C# : Hash Sign For Converting to Double

arrays - 排序和选择几乎排序的数组

c - 这个循环的时间复杂度

postgresql - 从 Postgres 备份数据库

sql - "column must appear in the GROUP BY clause or be used in an aggregate function"

c - 分析用 C 编写的函数的时间复杂度

ruby-on-rails - 具有非唯一列的 Activerecord-import upsert 到 postgres

c++ - 关于 "casting"变量的快速建议?非常短的功能需要调整