sql >> Base de Datos >  >> RDS >> PostgreSQL

Diferencia entre INSERTAR y COPIAR

Bastantes razones, en realidad, pero las principales son:

  • Por lo general, las aplicaciones cliente esperan la confirmación de un INSERT el éxito antes de enviar el siguiente. Entonces, hay un retraso de ida y vuelta para cada INSERT , retrasos en la programación, etc. (PgJDBC admite canalización INSERT s en lotes, pero no conozco ningún otro cliente que lo haga).

  • Cada INSERT tiene que pasar por todo el ejecutor. El uso de una declaración preparada evita la necesidad de ejecutar el analizador, la reescritura y el planificador, pero todavía hay un estado de ejecución para configurar y desmontar para cada fila. COPY hace algo de configuración una vez y tiene un extremadamente baja sobrecarga para cada fila, especialmente cuando no hay disparadores involucrados.

El primer punto es el más significativo. Se trata de viajes de ida y vuelta en la red y retrasos en la reprogramación.