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

33 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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 журналов, когда заполняется последний новые данные начинают писаться поверх первого.
Какие проблемы решает журнал:
- Консистентность данных
Главные вопросы, которые встают перед разработчиком любой БД:
- Как организовать журнал?
- Как его писать?
- Как писать его меньше?
- Как сделать так, чтобы это работало быстрее?
- При чем тут репликация?
Для улучшения производительности желательно под журналы выделять отдельные жесткие диски. Чтобы у журнала был эксклюзивный доступ к ресурсам диска. Менее актуально для SSD.