PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

PostgreSQL lento em uma tabela grande com arrays e muitas atualizações


Eu daria uma olhada no FILLFACTOR para a tabela. Por padrão, é definido como 100, você pode reduzi-lo para 70 (para começar). Depois disso, você deve fazer um VACUUM FULL para reconstruir a tabela.
ALTER TABLE tablename SET (FILLFACTOR = 70);
VACUUM FULL tablename;
REINDEX TABLE tablename;

Isso dá a UPDATE a chance de colocar a cópia atualizada de uma linha na mesma página que a original, o que é mais eficiente do que colocá-la em uma página diferente. Ou se o seu banco de dados já estiver um pouco fragmentado de muitas atualizações anteriores, ele já pode ser o suficiente. Agora seu banco de dados também tem a opção de fazer atualizações HOT, assumindo que a coluna que você está atualizando não está envolvida em nenhum índice.