34.2. Таблицы с оптимизацией для добавления данных #
При включённом append_optimized входящие строки для AOT-таблиц сначала поступают в специальный буфер. При заполнении буфера Postgres Pro по возможности вставляет эти строки одной операцией и создаёт одну запись WAL для этих строк. Это сокращает время на поиск буфера в разделяемой памяти и создаёт меньше записей WAL.
Таблица с включённым параметром append_optimized ведёт себя как обычная таблица и поддерживает все стандартные операции. Исключительная блокировка требуется только при включении или выключении параметра для существующей таблицы с помощью команды ALTER TABLE ... SET.
34.2.1. Ограничения таблиц с оптимизацией для добавления данных #
Оптимизированные операции только добавления не используются в следующих случаях:
Таблица является сторонней.
Таблица является временной.
У таблицы есть триггеры на уровне строк.
У таблицы есть изменчивые выражения
DEFAULT.В запросе
INSERTесть предложениеRETURNING.Запрос
INSERTсодержит изменчивые функции.Количество добавляемых строк меньше порогового значения, то есть
5120для обычных таблиц и10240для нежурналируемых таблиц.