Где используется репликация баз данных?

«Где используется репликация баз данных?» — вопрос из категории Базы данных, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Репликация — это механизм копирования данных с одного сервера БД (мастера) на один или несколько других (слейвов). В моей практике она применяется для решения нескольких ключевых задач:

  1. Масштабирование чтения (Read Scaling) Основная нагрузка в веб-приложениях — это чтение. Мы направляем SELECT-запросы на слейвы, оставляя мастеру только операции записи (INSERT, UPDATE, DELETE). Это значительно повышает общую пропускную способность.

  2. Повышение отказоустойчивости (High Availability) Если мастер выходит из строя, один из слейвов может быть оперативно повышен до роли мастера (failover), минимизируя время простоя приложения.

  3. Геораспределение (Geo-Distribution) Для глобальных приложений мы размещаем реплики в дата-центрах ближе к пользователям. Это снижает сетевую задержку для операций чтения.

  4. Выгрузка специализированных задач Тяжёлые аналитические отчёты или операции бэкапа выполняются на выделенной реплике, чтобы не создавать нагрузку на продакшен-базу.

Важный нюанс: необходимо учитывать репликационный лаг — задержку между записью на мастере и её отражением на слейве. Логика, где критична консистентность сразу после записи (например, показ только что созданного заказа), должна работать с мастером.