Уровень изоляции
Определяет, насколько транзакция изолирована от изменений других транзакций.
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
-- или:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;Объяснение
Пример
-- Для финансовых операций
BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SELECT balance FROM accounts WHERE id = 1; -- 1000
-- Другая транзакция НЕ может изменить это значение
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
COMMIT;Связанные термины
Анекдоты по теме
— Зачем нужен VACUUM в PostgreSQL? — PostgreSQL не удаляет строки физически сразу. UPDATE создаёт новую версию, DELETE помечает старую как мёртвую. VACUUM убирает мёртвые строки. — Как уборщик? — Точно. И autovacuum делает это автоматически.
— Что такое триггер? — Код, который выполняется автоматически при INSERT/UPDATE/DELETE. — Пример? — Аудит: при UPDATE employees — записывать старое и новое значение в audit_log. — Риски? — Скрытая логика. Сложно дебажить. Если много триггеров — неожиданные эффекты. — Рекомендация? — Использовать осторожно. Только для infrastructure concerns: аудит, обновление updated_at.
— Что такое CAP теорема? — Consistency, Availability, Partition tolerance — выбери два из трёх. — Это значит распределённые базы ненадёжны? — Нет. Partition tolerance обязательна. Реальный выбор: CP (PostgreSQL, MongoDB) или AP (Cassandra, CouchDB). — А PACELC? — Более реалистичная модель. Но это уже другая история.