digital-garden/_inbox/Журнал БД.md

33 lines
2.2 KiB
Markdown
Raw Normal View History

2024-06-13 21:01:37 +03:00
---
aliases:
tags:
- зрелость/🌱
date:
- - 2024-05-26
zero-link:
- "[[00 Базы Данных]]"
parents:
linked:
---
- В [PostgreSQL](00%20PostgreSQL.md) журнал называется [WAL](Write-Ahead%20Log.md)
- [Журналы в MySQL](Журналы%20в%20MySQL.md)
Основное преимущество БД - это [транзакции](Транзакция%20БД.md), то есть изменения происходят либо целиком, либо не происходят, вообще. Журнал выполняет важную функцию в этом процессе.
![](Pasted%20image%2020240528081137.png)
Мы пишем в отдельное место в журнал то, что мы хотим сделать. Мы сначала пишем все данные в журнал, а после того, как журнал зафиксирован на диске, мы изменяем сами данные в памяти. Потом, возможно, сильно позже, эти данные окажутся на диске. Этот алгоритм называется [PITR](Point%20In%20Time%20Recovery%20(PITR).md)
Как правило журналы имеют циклическую структуру. Например, у нас есть 10 журналов, когда заполняется последний новые данные начинают писаться поверх первого.
Какие проблемы решает журнал:
- Консистентность данных
Главные вопросы, которые встают перед разработчиком любой БД:
- Как организовать журнал?
- Как его писать?
- Как писать его меньше?
- Как сделать так, чтобы это работало быстрее?
2024-07-03 12:09:39 +03:00
- При чем тут репликация?
2024-07-03 12:14:39 +03:00
Для улучшения производительности желательно под журналы выделять отдельные жесткие диски. Чтобы у журнала был эксклюзивный доступ к ресурсам диска. Менее актуально для SSD.