Подтвердить что ты не робот

Выполняет ли PostgreSQL некоторую оптимизацию производительности для транзакций только для чтения

В соответствии с справочной документацией флажок транзакции READ ONLY полезен, кроме как разрешать транзакции DEFERRABLE?

SET SESSION CHARACTERISTICS AS TRANSACTION READ ONLY;

Свойство транзакции DEFERRABLE не действует, если транзакция также SERIALIZABLE и READ ТОЛЬКО. Когда все три эти свойства выбираются для транзакции, транзакция может блок при первом получении его моментального снимка, после которого он может запускаться без нормальных накладных расходов на транзакцию SERIALIZABLE и без любой риск внесения или отмены путем сериализации отказ. Этот режим хорошо подходит для долговременных отчетов или резервных копий.

Использует ли механизм базы данных другие оптимизации для транзакций только для чтения?

4b9b3361

Ответ 1

Подводя комментарии Ника Барнса и Крейга Рингера в комментариях к вопросу:

  • Флаг READ_ONLY не обязательно обеспечивает оптимизацию
  • Основное преимущество установки флага READ_ONLY заключается в том, чтобы гарантировать, что кортеж не будет изменен.