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