Commits will queue up and all flush when the WAL gets written.
So you'll get big groups of commits writing 5 times a second.
Я имею в виду 2 страницы документации на сайте PostgreSQL: # 1 и # 2 . Исходя из этого, мы видим, что журнал транзакций сбрасывается на диск 5 раз в секунду (wal_writer_delay = 200ms), и мы также видим, что СУБД не будет сообщать о транзакции как успешной, пока она не будет зафиксирована в файле журнала, так как synchronous_commit = on by by дефолт.
Это дало бы нам теоретический пик в 5 успешных операций записи в секунду, если каждая выполняется в своей собственной транзакции, что часто имеет место. Причина в том, что журнал не записывается на диск быстрее, чем это.
И все же мы видим скорость в тысячах в секунду.
Как это работает?
Чтобы было ясно, я говорю о каждой записи в своей собственной транзакции (использование по умолчанию). Я знаю, почему массовые вставки не относятся к этому вопросу.
Commits will queue up and all flush when the WAL gets written.
So you'll get big groups of commits writing 5 times a second.