2.2 KiB
aliases | tags | date | zero-link | parents | linked | ||||
---|---|---|---|---|---|---|---|---|---|
|
|
|
- В PostgreSQL журнал называется WAL
- Журналы в MySQL
Основное преимущество БД - это транзакции, то есть изменения происходят либо целиком, либо не происходят, вообще. Журнал выполняет важную функцию в этом процессе.
Мы пишем в отдельное место – в журнал – то, что мы хотим сделать. Мы сначала пишем все данные в журнал, а после того, как журнал зафиксирован на диске, мы изменяем сами данные в памяти. Потом, возможно, сильно позже, эти данные окажутся на диске. Этот алгоритм называется PITR
Как правило журналы имеют циклическую структуру. Например, у нас есть 10 журналов, когда заполняется последний новые данные начинают писаться поверх первого.
Какие проблемы решает журнал:
- Консистентность данных
Главные вопросы, которые встают перед разработчиком любой БД:
- Как организовать журнал?
- Как его писать?
- Как писать его меньше?
- Как сделать так, чтобы это работало быстрее?
- При чем тут репликация?
Для улучшения производительности желательно под журналы выделять отдельные жесткие диски. Чтобы у журнала был эксклюзивный доступ к ресурсам диска. Менее актуально для SSD.