diff --git a/.obsidian/plugins/home-tab/data.json b/.obsidian/plugins/home-tab/data.json index 306dcabe..694dc615 100644 --- a/.obsidian/plugins/home-tab/data.json +++ b/.obsidian/plugins/home-tab/data.json @@ -23,25 +23,25 @@ "markdownOnly": false, "unresolvedLinks": false, "recentFilesStore": [ + { + "filepath": "_inbox/Блокировки.md", + "timestamp": 1719851750513 + }, + { + "filepath": "wiki/zero/00 PostgreSQL.md", + "timestamp": 1719851678858 + }, { "filepath": "_inbox/Транзакция БД.md", - "timestamp": 1719851338260 + "timestamp": 1719851570469 + }, + { + "filepath": "_inbox/Deadlock.md", + "timestamp": 1719851480848 }, { "filepath": "notes/Собеседования/Вопросы для собеседование Java.md", "timestamp": 1719826611865 - }, - { - "filepath": "_inbox/Кэширование статики в Nginx.md", - "timestamp": 1719826234779 - }, - { - "filepath": "_inbox/Кэширование на стороне Nginx.md", - "timestamp": 1719826222287 - }, - { - "filepath": "_inbox/Кэширование.md", - "timestamp": 1719826042357 } ], "bookmarkedFileStore": [], diff --git a/.obsidian/plugins/recent-files-obsidian/data.json b/.obsidian/plugins/recent-files-obsidian/data.json index 04382ebd..7631a690 100644 --- a/.obsidian/plugins/recent-files-obsidian/data.json +++ b/.obsidian/plugins/recent-files-obsidian/data.json @@ -1,9 +1,21 @@ { "recentFiles": [ + { + "basename": "Блокировки", + "path": "_inbox/Блокировки.md" + }, + { + "basename": "00 PostgreSQL", + "path": "wiki/zero/00 PostgreSQL.md" + }, { "basename": "Транзакция БД", "path": "_inbox/Транзакция БД.md" }, + { + "basename": "Deadlock", + "path": "_inbox/Deadlock.md" + }, { "basename": "Вопросы для собеседование Java", "path": "notes/Собеседования/Вопросы для собеседование Java.md" @@ -187,18 +199,6 @@ { "basename": "Согласованное префиксное чтение", "path": "_inbox/Согласованное префиксное чтение.md" - }, - { - "basename": "Потерянное обновление", - "path": "_inbox/Потерянное обновление.md" - }, - { - "basename": "MVCC", - "path": "_inbox/MVCC.md" - }, - { - "basename": "Repeatable read", - "path": "_inbox/Repeatable read.md" } ], "omittedPaths": [], diff --git a/_inbox/Блокировки.md b/_inbox/Блокировки.md index 4ec084b0..99159812 100644 --- a/_inbox/Блокировки.md +++ b/_inbox/Блокировки.md @@ -27,4 +27,12 @@ linked: - **Применение**: Для ограничения количества одновременно выполняемых операций, например, подключения к базе данных. - **Блокировки баз данных (Database Locks)**: - **Назначение**: Предотвращают конкурентное выполнение операций, которые могут привести к некорректному состоянию данных. - - **Применение**: В системах управления базами данных (СУБД) для управления транзакциями и поддержания целостности данных. \ No newline at end of file + - **Применение**: В системах управления базами данных (СУБД) для управления транзакциями и поддержания целостности данных. + +Классификация: +- По области действия. + - Строчные. Блокировка конкретной строки + - Гранулярные. Блокировка + - Предикативные +- По строгости + - \ No newline at end of file diff --git a/_inbox/Транзакция БД.md b/_inbox/Транзакция БД.md index 1b126090..53f24867 100644 --- a/_inbox/Транзакция БД.md +++ b/_inbox/Транзакция БД.md @@ -15,6 +15,8 @@ linked: Для реализации обычно используется [Журнал БД](Журнал%20БД.md). Обычно у транзакции есть идентификатор. +Обычно работает с использованием [блокировок](Блокировки.md). + **Почему не используют транзакции:** - Снижение скорости работы приложения - Риски [Deadlock](Deadlock.md) diff --git a/wiki/zero/00 PostgreSQL.md b/wiki/zero/00 PostgreSQL.md index fe76afa4..cc528ee9 100644 --- a/wiki/zero/00 PostgreSQL.md +++ b/wiki/zero/00 PostgreSQL.md @@ -17,6 +17,7 @@ parents: - [Explain в PostgreSQL](Explain%20в%20PostgreSQL.md) - PostgreSQL пишет на диск в два места – в хранилище данных и в журнал. +- Если транзакции нужно выполнить операцию с данными, с которыми работает другая транзакция, то она может встать в очередь. ## Дополнительные материалы - [GitHub - Полезные утилиты для тюнинга PostgreSQL](https://github.com/dataegret/pg-utils) \ No newline at end of file