Tenho uma tabela que atualmente possui menos de 2 bilhões de registros, e sua chave primária é definida como tipo de dados "Serial", que pode lidar com até 2 bilhões de registros. No entanto, prevejo que o limite será atingido em breve.
Como não uso a chave primária em nenhum lugar da consulta e ela não tem nenhuma relação com nenhuma outra tabela, estou pensando em descartar a própria coluna de chave primária.
Minha preocupação é quanto tempo levará para remover a coluna da tabela e se isso causará algum problema de bloqueio ou inatividade para as outras consultas que acessam a tabela.
Você poderia explicar o processo de descartar uma coluna no PostgreSQL?
eliminará a coluna em questão de milissegundos, a menos que você tenha transações de longa duração que acessem a tabela. A instrução falhará se a chave primária for referenciada em qualquer outro lugar.
O que acontece é apenas uma simples operação de metadados que marca a coluna como "excluída". A tabela em si não é tocada e os valores da coluna ainda estão lá. Se você atualizar uma linha, esses dados "mortos" serão removidos.
Você não deve ter uma tabela sem uma chave primária. Por um lado, impede que você tenha chaves estrangeiras e, em seguida, pode acabar com linhas duplicadas. Veja respostas como esta e esta para alternativas.