vault backup: 2024-06-19 20:23:54
This commit is contained in:
parent
3a3f080c0c
commit
0eacc131bf
14
.obsidian/plugins/home-tab/data.json
vendored
14
.obsidian/plugins/home-tab/data.json
vendored
@ -24,12 +24,16 @@
|
||||
"unresolvedLinks": false,
|
||||
"recentFilesStore": [
|
||||
{
|
||||
"filepath": "_inbox/Read committed.md",
|
||||
"timestamp": 1718817519939
|
||||
"filepath": "_inbox/Repeatable read.md",
|
||||
"timestamp": 1718817548205
|
||||
},
|
||||
{
|
||||
"filepath": "knowledge/dev/database/Уровни изоляций транзакций БД.md",
|
||||
"timestamp": 1718817518532
|
||||
"timestamp": 1718817545204
|
||||
},
|
||||
{
|
||||
"filepath": "_inbox/Read committed.md",
|
||||
"timestamp": 1718817519939
|
||||
},
|
||||
{
|
||||
"filepath": "_inbox/Транзакция БД.md",
|
||||
@ -38,10 +42,6 @@
|
||||
{
|
||||
"filepath": "_inbox/Фантомное чтение.md",
|
||||
"timestamp": 1718817514775
|
||||
},
|
||||
{
|
||||
"filepath": "_inbox/Read uncommitted.md",
|
||||
"timestamp": 1718817512090
|
||||
}
|
||||
],
|
||||
"bookmarkedFileStore": [],
|
||||
|
@ -1,13 +1,17 @@
|
||||
{
|
||||
"recentFiles": [
|
||||
{
|
||||
"basename": "Read committed",
|
||||
"path": "_inbox/Read committed.md"
|
||||
"basename": "Repeatable read",
|
||||
"path": "_inbox/Repeatable read.md"
|
||||
},
|
||||
{
|
||||
"basename": "Уровни изоляций транзакций БД",
|
||||
"path": "knowledge/dev/database/Уровни изоляций транзакций БД.md"
|
||||
},
|
||||
{
|
||||
"basename": "Read committed",
|
||||
"path": "_inbox/Read committed.md"
|
||||
},
|
||||
{
|
||||
"basename": "Транзакция БД",
|
||||
"path": "_inbox/Транзакция БД.md"
|
||||
@ -24,10 +28,6 @@
|
||||
"basename": "Потерянное обновление",
|
||||
"path": "_inbox/Потерянное обновление.md"
|
||||
},
|
||||
{
|
||||
"basename": "Repeatable read",
|
||||
"path": "_inbox/Repeatable read.md"
|
||||
},
|
||||
{
|
||||
"basename": "Неповторяющееся чтение",
|
||||
"path": "_inbox/Неповторяющееся чтение.md"
|
||||
|
@ -13,4 +13,6 @@ linked:
|
||||
**Read committed (чтение фиксированных данных).** Большинство промышленных СУБД по умолчанию используют именно этот уровень. На этом уровне обеспечивается защита от «грязного» чтения, тем не менее, в процессе работы одной транзакции другая может быть успешно завершена и сделанные ею изменения зафиксированы. В итоге первая транзакция будет работать с другим набором данных. ^11df20
|
||||
|
||||
Проблемы:
|
||||
- [[непов]]
|
||||
- [Неповторяющееся чтение](Неповторяющееся%20чтение.md)
|
||||
- [Фантомное чтение](Фантомное%20чтение.md)
|
||||
- [Потерянное обновление](Потерянное%20обновление.md)
|
@ -22,3 +22,9 @@ linked:
|
||||
Но если вторая транзакция не изменяла данные, а добавляла новые строчки, то исключения не было бы. Также проблем не будет, если мы обновим баланс второго пользователя.
|
||||
|
||||
Но возникает закономерный вопрос: что делать с ошибкой, ведь мы хотели выполнить транзакцию, которая свалилась с исключением. Самое простое, что можно сделать — это повторить выполнение второй транзакции с новыми данными. Если исключение возникнет опять, то повторить снова.
|
||||
|
||||
Особенности
|
||||
- В [PostgreSQL](00%20PostgreSQL.md) на уровне `REPEATABLE_READ` также предотвращены фантомные чтения.
|
||||
|
||||
Проблемы:
|
||||
- [Фантомное чтение](Фантомное%20чтение.md)
|
Loading…
Reference in New Issue
Block a user