A maneira mais rápida que posso imaginar seria descartar todos os índices e acionadores (ou pelo menos ALTER TABLE foo DISABLE TRIGGER ALL;
) na tabela no postgresql, adicionar a linha \.
da extremidade da entrada ao final do seu CSV arquivo, em seguida, colocar o arquivo no servidor (de preferência em uma unidade diferente do que está sendo usado para o banco de dados, ou talvez em algum lugar na rede, o servidor pode acessar via NFS) e COPY foo FROM '/some/file.csv' WITH CSV;
(8.x sintaxe, que é suportado em 9.0 Dependendo do formato de arquivo CSV, você pode precisar fazer modificações . , recrie os índices e reative os gatilhos.
Algumas das opções de configuração para postgres podem afetar os tempos de carregamento de dados. Desativar o autovacuum e aumentar o tempo entre os checkpoints pode ajudar com cargas enormes, mas será necessário reiniciar o postgresql para alterar as configurações de checkpoint_segments
ou autovacuum
e você deverá configurar o autovacuum de volta quando estiver feito.