Почему реплицированная база данных будет иметь меньшую нагрузку? - PullRequest
0 голосов
/ 04 мая 2018

Если возможно поговорить на высоком уровне о репликации базы данных, это то, что я ищу.

Представьте, что у меня есть реплицированная база данных только для чтения, созданная с намерением использовать ее для составления отчетов. Преимущество состоит в том, что пользователи не берут первичные базы данных для отчетов, эти запросы выгружаются во вторичную базу данных. Но если я настроил доставку в реальном времени, теперь эта вторичная БД получает запросы на чтение, а также операторы обновления от первичной. Не будет ли ваша реплицированная БД подвержена ошибкам в той же степени, как если бы вы использовали один БД для транзакционных и отчетных функций?

Другими словами, каково преимущество производительности любого из методов репликации в реальном времени (я только знаком с доставкой журналов) по сравнению с обычными операциями CRUD, с которыми может работать транзакционная база данных чтения-записи?

1 Ответ

0 голосов
/ 09 мая 2018

Без вашей репликации:

  1. На основном сервере у вас есть:
    • операторы SELECT,
    • операторы DML,
    • отчетные отчеты.

Если вы создаете репликацию, то:

  1. На начальном этапе у вас есть:

    • операторы SELECT,
    • операторы DML.
  2. На копии у вас есть:

    • операторы DML,
    • отчетные отчеты.

У вас нет нагрузки, которая генерируется из операторов SELECT в источнике. Все системы репликации на основе журналов не реплицируют операторы SELECT в систему репликации. Они не изменяют данные, и их нет в журнале базы данных.

Более продвинутые системы репликации также не реплицируют операторы DML, которые были откатаны (завершено оператором ROLLBACK). Только зафиксированные операторы реплицируются (завершается оператором COMMIT).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...