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,
|
"unresolvedLinks": false,
|
||||||
"recentFilesStore": [
|
"recentFilesStore": [
|
||||||
{
|
{
|
||||||
"filepath": "_inbox/Read committed.md",
|
"filepath": "_inbox/Repeatable read.md",
|
||||||
"timestamp": 1718817519939
|
"timestamp": 1718817548205
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filepath": "knowledge/dev/database/Уровни изоляций транзакций БД.md",
|
"filepath": "knowledge/dev/database/Уровни изоляций транзакций БД.md",
|
||||||
"timestamp": 1718817518532
|
"timestamp": 1718817545204
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filepath": "_inbox/Read committed.md",
|
||||||
|
"timestamp": 1718817519939
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filepath": "_inbox/Транзакция БД.md",
|
"filepath": "_inbox/Транзакция БД.md",
|
||||||
@ -38,10 +42,6 @@
|
|||||||
{
|
{
|
||||||
"filepath": "_inbox/Фантомное чтение.md",
|
"filepath": "_inbox/Фантомное чтение.md",
|
||||||
"timestamp": 1718817514775
|
"timestamp": 1718817514775
|
||||||
},
|
|
||||||
{
|
|
||||||
"filepath": "_inbox/Read uncommitted.md",
|
|
||||||
"timestamp": 1718817512090
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"bookmarkedFileStore": [],
|
"bookmarkedFileStore": [],
|
||||||
|
@ -1,13 +1,17 @@
|
|||||||
{
|
{
|
||||||
"recentFiles": [
|
"recentFiles": [
|
||||||
{
|
{
|
||||||
"basename": "Read committed",
|
"basename": "Repeatable read",
|
||||||
"path": "_inbox/Read committed.md"
|
"path": "_inbox/Repeatable read.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"basename": "Уровни изоляций транзакций БД",
|
"basename": "Уровни изоляций транзакций БД",
|
||||||
"path": "knowledge/dev/database/Уровни изоляций транзакций БД.md"
|
"path": "knowledge/dev/database/Уровни изоляций транзакций БД.md"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"basename": "Read committed",
|
||||||
|
"path": "_inbox/Read committed.md"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"basename": "Транзакция БД",
|
"basename": "Транзакция БД",
|
||||||
"path": "_inbox/Транзакция БД.md"
|
"path": "_inbox/Транзакция БД.md"
|
||||||
@ -24,10 +28,6 @@
|
|||||||
"basename": "Потерянное обновление",
|
"basename": "Потерянное обновление",
|
||||||
"path": "_inbox/Потерянное обновление.md"
|
"path": "_inbox/Потерянное обновление.md"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"basename": "Repeatable read",
|
|
||||||
"path": "_inbox/Repeatable read.md"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"basename": "Неповторяющееся чтение",
|
"basename": "Неповторяющееся чтение",
|
||||||
"path": "_inbox/Неповторяющееся чтение.md"
|
"path": "_inbox/Неповторяющееся чтение.md"
|
||||||
|
@ -13,4 +13,6 @@ linked:
|
|||||||
**Read committed (чтение фиксированных данных).** Большинство промышленных СУБД по умолчанию используют именно этот уровень. На этом уровне обеспечивается защита от «грязного» чтения, тем не менее, в процессе работы одной транзакции другая может быть успешно завершена и сделанные ею изменения зафиксированы. В итоге первая транзакция будет работать с другим набором данных. ^11df20
|
**Read committed (чтение фиксированных данных).** Большинство промышленных СУБД по умолчанию используют именно этот уровень. На этом уровне обеспечивается защита от «грязного» чтения, тем не менее, в процессе работы одной транзакции другая может быть успешно завершена и сделанные ею изменения зафиксированы. В итоге первая транзакция будет работать с другим набором данных. ^11df20
|
||||||
|
|
||||||
Проблемы:
|
Проблемы:
|
||||||
- [[непов]]
|
- [Неповторяющееся чтение](Неповторяющееся%20чтение.md)
|
||||||
|
- [Фантомное чтение](Фантомное%20чтение.md)
|
||||||
|
- [Потерянное обновление](Потерянное%20обновление.md)
|
@ -21,4 +21,10 @@ linked:
|
|||||||
|
|
||||||
Но если вторая транзакция не изменяла данные, а добавляла новые строчки, то исключения не было бы. Также проблем не будет, если мы обновим баланс второго пользователя.
|
Но если вторая транзакция не изменяла данные, а добавляла новые строчки, то исключения не было бы. Также проблем не будет, если мы обновим баланс второго пользователя.
|
||||||
|
|
||||||
Но возникает закономерный вопрос: что делать с ошибкой, ведь мы хотели выполнить транзакцию, которая свалилась с исключением. Самое простое, что можно сделать — это повторить выполнение второй транзакции с новыми данными. Если исключение возникнет опять, то повторить снова.
|
Но возникает закономерный вопрос: что делать с ошибкой, ведь мы хотели выполнить транзакцию, которая свалилась с исключением. Самое простое, что можно сделать — это повторить выполнение второй транзакции с новыми данными. Если исключение возникнет опять, то повторить снова.
|
||||||
|
|
||||||
|
Особенности
|
||||||
|
- В [PostgreSQL](00%20PostgreSQL.md) на уровне `REPEATABLE_READ` также предотвращены фантомные чтения.
|
||||||
|
|
||||||
|
Проблемы:
|
||||||
|
- [Фантомное чтение](Фантомное%20чтение.md)
|
Loading…
Reference in New Issue
Block a user