DBA2-10 Тема 2 «Страницы и версии строк»
Вставка
- Опубліковано 19 вер 2024
- Учебный курс DBA2-10 Администрирование PostgreSQL 10. Настройка и мониторинг: postgrespro.ru...
Раздел «Многоверсионность», Тема 2 «Страницы и версии строк»
Авторы курса: Егор Рогов, Павел Лузанов.
© 2019 Postgres Professional
При использовании, упоминании, репосте, частичной или полной публикации материалов курса на сторонних интернет-ресурсах ссылка на сайт www.postgrespro.ru обязательна
#DBA2 #PostgreSQL #Postgres #PostgresPro #Education
Классные курсы! Спасибо вам!!
Спасибо!
Спасибо за курс.
Еще вопрос. Явлется-ли UPDATE... RETURNING ( DELETE... RETURNING) чтением которое установит xmin/xmax бит?
Команды UPDATE и DELETE (не важно, RETURNING или нет) делают какие-то версии строк неактивными и, следовательно, проставляют в них xmax. А UPDATE к тому же создает новые версии строк и, следовательно, проставляет в них xmin.
(Даже SELECT FOR проставляет xmax, но вместе с информационным битом, который говорит о том, что версия просто блокируется и остается активной.)
Не всегда понятно, какие команды можно вводить в Постгресе в терминале, а какие работают только в psql. Я так понял с обратным слешем это psql всегда? А обычные команлы могут работать и в терминале и в psql?
А PL/pgSQL везде работает?
В терминале вводятся команды операционной системы. В материалах курса все такие команды начинаются с приглашения student$ или postgres$. Команды, относящиеся к Постгресу (и с обратного слеша, и команды SQL типа SELECT или UPDATE, и PL/pgSQL тоже) надо вводить в psql. У таких команд приглашение =>.
Посмотрите Руководство слушателя, там это подробно расписано.
postgrespro.ru/education/courses/DBA2
Интересная концепция, что первая читающая трансакция обнавляет committed бит. А что произойдет если чтения долго не было после вставки и трансакция пропала из XACT? Не вечно же они там хронятся.
Транзакции удаляются из XACT/CLOG не раньше, чем все версии с ними будут заморожены, то есть когда номер транзакции точно никому не понадобится. Поэтому такой проблемы нет. (Два бита на транзакцию - не так много.)
@@PostgresProfessional Спасибо. Значит-ли это, что XLOG будет рoсти если чтения нет? Есть ли другой механизм обновления этоло бита?