Вопрос

В бизнесе, в котором я работаю, мы обсуждаем методы снижения нагрузки на чтение в нашей основной базе данных.

Один из предложенных вариантов - это оперативная односторонняя репликация из нашей основной базы данных в подчиненную базу данных.Затем приложения будут считывать данные из подчиненной базы данных и записывать непосредственно в основную базу данных.Итак...

  • Приложение Считывает данные с ведомого устройства
  • Приложение записывает данные на основной
  • Основное Подчиненное устройство Автоматически обновляет

Каковы основные плюсы и минусы этого метода?

Это было полезно?

Решение

Несколько минусов:

  • 2 точки отказа
  • Логика приложения должна будет учитывать задержку между записью чего-либо и последующим чтением этого, поскольку это не будет доступно немедленно из базы данных-получателя

Стратегия, которую я использовал, заключается в ежевечерней отправке ключевых данных отчетов во вторичную базу данных, по пути отменяя их нормализацию, чтобы в этой базе данных могли выполняться сложные запросы вместо блокировки таблиц и кражи ресурсов с OLTP-сервера.Я не использую какие-либо официальные средства хранения данных или репликации, скорее я определяю проблемные запросы, которые подходят без актуальных данных, и создаю структуры данных на вторичном сервере специально для этих запросов.

В подходе "копируй все" определенно есть плюсы:

  • Вы можете запустить любой специальный запрос на вторичном сервере, поскольку он содержит все ваши данные
  • Если ваш основной сервер умрет, вы можете быстро перенастроить вторичный, чтобы взять управление на себя

Другие советы

Мы используем односторонние репликации, но не из одного и того же приложения.Наши приложения выполняют чтение-запись в основную базу данных, данные синхронизируются с базой данных replca, и инструменты отчетности используют эту реплику.

Мы не хотим, чтобы наше приложение считывало данные из другой базы данных, поэтому в этом сценарии я бы предложил использовать группы файлов и секционирование в основной базе данных.Использование файловых групп (особенно на разных дисках) и секционирование файлов и индексов может значительно повысить производительность.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top