Вопросы к Поиску с Алисой

Примеры ответов Поиска с Алисой
Главная / Технологии / Какие существуют способы блокировки строк в PostgreSQL?
Вопрос для Поиска с Алисой
23 июля

Какие существуют способы блокировки строк в PostgreSQL?

Алиса
На основе источников, возможны неточности

В PostgreSQL существуют разные способы блокировки строк, в зависимости от типа блокируемого объекта и характера блокировки. docs.arenadata.io

По типу блокируемого объекта выделяют блокировки на уровне таблицы, строки и страницы: docs.arenadata.io

  • Блокировки на уровне таблицы. docs.arenadata.io Например, ACCESS SHARE (AccessShareLock) для запросов, которые только читают таблицу и не изменяют её. docs.arenadata.io ACCESS EXCLUSIVE (AccessExclusiveLock) гарантирует, что только транзакция, получившая эту блокировку, сможет получить доступ к таблице. docs.arenadata.io
  • Блокировки на уровне строки. postgrespro.ru Они блокируют только запись в определённые строки, но никак не влияют на выборку. postgrespro.ru Некоторые режимы блокировки строк: FOR UPDATE (полное изменение или удаление строки), FOR NO KEY UPDATE (изменение только тех полей, которые не входят в уникальные индексы). slonik.readthedocs.io habr.com
  • Блокировки на уровне страницы. docs.arenadata.io Используются для управления доступом для чтения/записи к страницам таблиц в общем пуле буферов. docs.arenadata.io Такие блокировки снимаются немедленно после выборки или обновления строки. docs.arenadata.io

По характеру блокировки выделяют исключительные (exclusive) и разделяемые (shared) блокировки: slonik.readthedocs.io docs.arenadata.io

  • Исключительные. slonik.readthedocs.io Одновременно может удерживать только одна транзакция. slonik.readthedocs.io Примеры: Update (изменение любых полей строки или её удаление) и No Key Update (изменение только тех полей, которые не входят в уникальные индексы). slonik.readthedocs.io
  • Разделяемые. slonik.readthedocs.io Могут удерживаться несколькими транзакциями. slonik.readthedocs.io Примеры: Share (применяется, когда нужно прочитать строку, но при этом нельзя допустить, чтобы она как-либо изменилась другой транзакцией) и Key Share (допускает изменение строки, но только неключевых полей). slonik.readthedocs.io

Также в PostgreSQL есть рекомендательные блокировки (advisory locks), значение которых определяется приложением. docs.arenadata.io Есть два способа получения такой блокировки: на уровне сессии и на уровне транзакции. docs.arenadata.io

Примеры полезных ответов Поиска с Алисой на вопросы из разных сфер. Вопросы сгенерированы нейросетью YandexGPT для актуальных тем, которые определяются на базе обобщённых запросов к Поиску с Алисой.
Задать новый вопрос
Задайте вопрос...
…и сразу получите ответ в Поиске с Алисой
Войдите, чтобы поставить лайк
С Яндекс ID это займёт пару секунд
Войти
Mon Jul 28 2025 17:04:21 GMT+0300 (Moscow Standard Time)