我需要在我的表中添加一个id列,该列具有大约500cr行并使用增量值更新它。请建议最好的方法是什么。 我尝试运行查询来更新值并存储在新表中,但查询在超时6小时后失败。请帮忙。
答案 0 :(得分:3)
row_number() over()
非常昂贵!
您应该尝试row_number() over(partition by some_field)
在分区之间重新分配编号
在这里,你应该选择在你的表中具有合理数量的不同值的分区字段 - 比方说1K左右
在“第一轮”之后 - 您将拥有复合键:partition_field
+ incremental number
,您可以将其用作主键/外键,或者如果您愿意,您可以将这两者组合成一个键{ p>
答案 1 :(得分:0)
当您需要生成数字ID时,我发现此方法更有效:
RANK() OVER(ORDER BY GENERATE_UUID())