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

Diferença entre INSERT e COPY


Muitas razões, na verdade, mas as principais são:

  • Normalmente, os aplicativos cliente aguardam a confirmação de um INSERT 's sucesso antes de enviar o próximo. Portanto, há um atraso de ida e volta para cada INSERT , atrasos de agendamento, etc. (PgJDBC suporta pipeline INSERT s em lotes, mas não conheço nenhum outro cliente que o faça).

  • Cada INSERT tem que passar por todo o executor. O uso de uma instrução preparada ignora a necessidade de executar o analisador, o reescritor e o planejador, mas ainda há o estado do executor para configurar e desmontar para cada linha. COPY faz alguma configuração uma vez, e tem um extremamente baixa sobrecarga para cada linha, especialmente quando não há gatilhos envolvidos.

O primeiro ponto é o mais significativo. É tudo sobre viagens de ida e volta da rede e atrasos de reprogramação.