PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Разлика между INSERT и COPY

Всъщност има доста причини, но основните са:

  • Обикновено клиентските приложения чакат потвърждение на един INSERT успех, преди да изпрати следващия. Така че има двупосочно забавяне за всеки INSERT , закъснения при планиране и т.н. (PgJDBC поддържа конвейерна обработка INSERT s в партиди, но не знам за други клиенти, които го правят).

  • Всеки INSERT трябва да премине през целия екзекутор. Използването на подготвен оператор заобикаля необходимостта от стартиране на анализатора, пренаписването и планирането, но все още има състояние на изпълнител, което да се настрои и разруши за всеки ред. COPY прави някои настройки веднъж и има изключително ниски режийни разходи за всеки ред, особено когато не са включени тригери.

Първата точка е най-важната. Всичко е свързано с мрежови обиколки и закъснения при пренасрочване.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. прекъсване на последователността row_number() на базата на флагова променлива

  2. Pl/pgSQL няма параметър $1 в оператора EXECUTE

  3. Групово upsert с SQLAlchemy

  4. Име на приложение в JDBC url с помощта на c3p0

  5. Как да използвате homebrew за понижаване на postgresql от 10.1 до 9.6 на Mac OS