34.2. Таблицы с оптимизацией для добавления данных #

При включённом append_optimized входящие строки для AOT-таблиц сначала поступают в специальный буфер. При заполнении буфера Postgres Pro по возможности вставляет эти строки одной операцией и создаёт одну запись WAL для этих строк. Это сокращает время на поиск буфера в разделяемой памяти и создаёт меньше записей WAL.

Таблица с включённым параметром append_optimized ведёт себя как обычная таблица и поддерживает все стандартные операции. Исключительная блокировка требуется только при включении или выключении параметра для существующей таблицы с помощью команды ALTER TABLE ... SET.

34.2.1. Ограничения таблиц с оптимизацией для добавления данных #

Оптимизированные операции только добавления не используются в следующих случаях:

  • Таблица является сторонней.

  • Таблица является временной.

  • У таблицы есть триггеры на уровне строк.

  • У таблицы есть изменчивые выражения DEFAULT.

  • В запросе INSERT есть предложение RETURNING.

  • Запрос INSERT содержит изменчивые функции.

  • Количество добавляемых строк меньше порогового значения, то есть 5120 для обычных таблиц и 10240 для нежурналируемых таблиц.

FAQ