sql >> Database >  >> RDS >> PostgreSQL

Verschil tussen INSERT en COPY

Heel wat redenen eigenlijk, maar de belangrijkste zijn:

  • Gewoonlijk wachten client-applicaties op bevestiging van één INSERT 's succes voordat u de volgende verzendt. Er is dus een retourvertraging voor elke INSERT , vertragingen in de planning, enz. (PgJDBC ondersteunt pijplijnen INSERT s in batches, maar ik ken geen andere klanten die dat wel doen).

  • Elke INSERT moet de hele uitvoerder doorlopen. Het gebruik van een voorbereide instructie omzeilt de noodzaak om de parser, rewriter en planner uit te voeren, maar er is nog steeds een uitvoerdersstatus om voor elke rij in te stellen en af ​​te breken. COPY doet een keer wat setup, en heeft een extreem lage overhead voor elke rij, vooral als er geen triggers bij betrokken zijn.

Het eerste punt is het belangrijkste. Het draait allemaal om heen- en terugreis via het netwerk en het opnieuw plannen van vertragingen.



  1. hoe zend paginate te gebruiken zonder alle resultaten van een database te laden

  2. Kan ik mysql dwingen om eerst een subquery uit te voeren?

  3. Mysql opstartproblemen | FOUT! De server is gestopt zonder het PID-bestand bij te werken

  4. Verstreken tijd vanaf een bepaalde tijd in de database