digital-garden/_inbox/Read committed.md

27 lines
1.7 KiB
Markdown
Raw Normal View History

2024-06-19 19:58:52 +03:00
---
aliases:
tags:
- зрелость/🌱
date:
- - 2024-06-19
zero-link:
- "[[00 Базы Данных]]"
parents:
- "[[Уровни изоляций транзакций БД]]"
2024-07-02 18:07:53 +03:00
linked:
next: "[[Repeatable read]]"
prev: "[[Read uncommitted]]"
2024-06-19 19:58:52 +03:00
---
**Read committed (чтение фиксированных данных).** Большинство промышленных СУБД по умолчанию используют именно этот уровень. На этом уровне обеспечивается защита от «грязного» чтения, тем не менее, в процессе работы одной транзакции другая может быть успешно завершена и сделанные ею изменения зафиксированы. В итоге первая транзакция будет работать с другим набором данных. ^11df20
2024-07-02 18:07:53 +03:00
**Реализация:**
2024-06-20 19:53:42 +03:00
- Использование [Блокировки](Блокировки.md). Устанавливаем блокировку строк на запись
- Сохраняем старые значения строк до коммита изменений. Отдаем их другим транзакциям. ([MVCC](MVCC.md))
2024-06-19 20:56:55 +03:00
2024-07-02 18:07:53 +03:00
**Минусы:**
- Большое потребление RAM, так как создает множество временных сущностей.
**Проблемы:**
2024-06-19 20:23:54 +03:00
- [Неповторяющееся чтение](Неповторяющееся%20чтение.md)
- [Фантомное чтение](Фантомное%20чтение.md)
- [Потерянное обновление](Потерянное%20обновление.md)