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