sql >> Databasteknik >  >> RDS >> PostgreSQL

Skillnaden mellan INSERT och COPY

Faktiskt en hel del anledningar, men de viktigaste är:

  • Vanligtvis väntar klientprogram på bekräftelse av en INSERT s framgång innan du skickar nästa. Så det finns en fördröjning tur och retur för varje INSERT , schemaläggningsförseningar, etc. (PgJDBC stöder pipelineing INSERT s i omgångar, men jag känner inte till några andra klienter som gör det).

  • Varje INSERT måste gå igenom hela exekutorn. Användning av en förberedd sats förbigår behovet av att köra tolken, omskrivaren och planeraren, men det finns fortfarande exekveringsläge att ställa in och riva ner för varje rad. COPY gör vissa inställningar en gång och har en extremt låg overhead för varje rad, speciellt där inga utlösare är inblandade.

Den första punkten är den viktigaste. Allt handlar om nätverksresor och omläggning av förseningar.



  1. Ansluter RStudio till SQL Server

  2. Exportera frågeresultat till en XML-fil när du använder SQLcl (Oracle)

  3. Hur kombinerar man aggregerade funktioner i MySQL?

  4. Runtime.getRuntime().exec för att skicka parametern när du uppmanas