32 lines
1.6 KiB
Markdown
32 lines
1.6 KiB
Markdown
|
---
|
|||
|
aliases:
|
|||
|
- RBR
|
|||
|
tags:
|
|||
|
- зрелость/🌱
|
|||
|
date:
|
|||
|
- - 2024-06-02
|
|||
|
zero-link:
|
|||
|
- "[[00 MySQL]]"
|
|||
|
parents:
|
|||
|
- "[[Репликация в MySQL]]"
|
|||
|
linked:
|
|||
|
- "[[Statement Based Replication (SBR)]]"
|
|||
|
---
|
|||
|
От мастера к слейву отправляются только измененные строки, сам результат изменений. Основан на журнале [Row-based Binary Log](Журналы%20в%20MySQL.md#Row-based%20Binary%20Log).
|
|||
|
|
|||
|
Есть три режима работы:
|
|||
|
- full - при изменении сохраняются все колонки (до изменения и после), даже если в них не было изменений. Потребляет много памяти.
|
|||
|
- noblob - работает как full, но не передает изменения BLOB и TEXT колонок
|
|||
|
- minimal - при изменении строки сохраняются только измененные колонки и колонки ПК
|
|||
|
|
|||
|
**Плюсы:**
|
|||
|
- Детерминирован.
|
|||
|
- Бинарный формат
|
|||
|
- Запрос выполняется на мастер ноде, а слейвы получают уже результат
|
|||
|
|
|||
|
**Минусы:**
|
|||
|
- Не человеко-читаемый
|
|||
|
- Есть утилита `mysqlbinlog -v`, которая позволяет читать журнал
|
|||
|
- При изменении одного поля у записи отправляется вся запись целиком
|
|||
|
- в mysql есть binlog_row_image, который решает эту проблему
|