问题描述
我正在尝试将我的表写入 PostgreSQL 数据库,然后声明一个主键。我的数据真的很大(包括数十亿行,总大小约为 150 GB),当我在写表后尝试创建主键时,它需要永远。这是我定义主键的方式;
ALTER TABLE my_huge_table ADD CONSTRAINT huge_pk PRIMARY KEY (column_x,column_y)
我 %101 确定这些列的唯一性并且它们不为空。什么都不等真的没有必要,我正在寻找一条不浪费时间的退路。我想肯定有人遇到过这样的情况。等待您的宝贵帮助。
解决方法
你不是在等什么。您可能正在等待建立索引。将来需要该索引来强制执行主键。如果系统相信你的声明它已经是唯一的,那真的不会给你带来太多好处,它仍然需要构建索引。如果您相信现在没有违反主键,并且相信将来没有人会尝试违反它,那么不要添加主键。只需添加一条评论,说明您知道这是一个主键,但出于性能原因不会正式声明它。