IT-словарь › Базы данных › Блокировка таблицы

Блокировка таблицы

Базы данных Svenska → Обновлено: 2026-10-18

Блокировка всей таблицы целиком; в PostgreSQL у неё восемь уровней, и берётся она главным образом при DDL-операциях.

Уровни: AccessShare, RowShare, RowExclusive, ShareUpdateExclusive, Share, ShareRowExclusive, Exclusive, AccessExclusive. AccessShare берёт обычный SELECT, и он совместим со всеми, кроме AccessExclusive. AccessExclusive не пускает никого, включая SELECT, — его берут ALTER TABLE, DROP TABLE и REINDEX. Типичный антипаттерн: ALTER TABLE ADD COLUMN со значением по умолчанию на таблице в 100 млн строк — перезапись таблицы, несколько минут блокировки и простой приложения. В PostgreSQL 11+ перезапись не нужна для nullable-колонок и неизменяемых значений по умолчанию. Для онлайн-миграций есть pt-online-schema-change (Percona), gh-ost (GitHub) и pgroll (Xata); InnoDB умеет многие операции онлайн без блокировки.

← Назад к словарю