Ssylka

Оптимизация базы данных монолитного приложения: стратегии и решения

Для снижения нагрузки на базу данных монолитного приложения, разработчики применили комплексный подход, включающий анализ «медленных» запросов, вынос таблиц в отдельные базы данных и сокращение объёма хранимых данных. Сначала была проведена оптимизация запросов, на основе анализа slow query логов, что позволило снизить нагрузку на CPU и ОЗУ.
Оптимизация базы данных монолитного приложения: стратегии и решения
Изображение носит иллюстративный характер

Для ускорения процесса разгрузки основной базы данных был разработан инструмент TableSwitcher. Он позволяет переключать чтение и запись отдельных таблиц на новую БД, минимизируя риски. Изначально используется одновременная запись в обе базы, затем переключение чтения и генерации ID на новую. Процесс включает в себя последовательное переключение стратегий, основанных на первичных ключах, и последующую миграцию отсутствующих данных.

При выборе таблиц для переноса, учитывались нагрузка, использование в коде, связанность с другими таблицами и актуальность переноса. Для выноса выбрали 13 таблиц, преимущественно содержащих данные логирования. Столкнулись с проблемами из-за ограничений на количество подключений к БД в облаке, а также из-за проблем переключения мастера в другом дата-центре, которые были решены с использованием HAProxy и PgBouncer.

Дополнительно были реализованы стратегии по сокращению размера БД. Это включало отсеивание забытых таблиц, удаление устаревших данных, поиск неиспользуемых таблиц и индексов, и, наконец, сокращение срока хранения информации о заказах. В результате, размер БД был уменьшен с 4 ТБ до 750 ГБ, что позволило перенести её в облако.


Новое на сайте

18666Почему мы отрицаем реальность, когда искусственный интеллект уже лишил нас когнитивного... 18665Химический след Тейи раскрыл тайну происхождения луны в ранней солнечной системе 18664Раскрывает ли извергающаяся межзвездная комета 3I/ATLAS химические тайны древней... 18663Масштабная кампания ShadyPanda заразила миллионы браузеров через официальные обновления 18662Как помидорные бои и персонажи Pixar помогают лидерам превратить корпоративную культуру 18661Как астероид 2024 YR4 стал первой исторической проверкой системы планетарной защиты и... 18660Агентные ИИ-браузеры как троянский конь новой эры кибербезопасности 18659Многовековая история изучения приливов от античных гипотез до синтеза Исаака Ньютона 18658Как выглядела защита от солнца римских легионеров в Египте 1600 лет назад? 18657Хакеры ToddyCat обновили арсенал для тотального взлома Outlook и Microsoft 365 18656Асимметрия безопасности: почему многомиллионные вложения в инструменты детекции не... 18655Как безопасно использовать репозитории Chocolatey и Winget, не подвергая инфраструктуру... 18654Масштабная утечка конфиденциальных данных через популярные онлайн-форматеры кода 18653Как расширение списка жертв взлома Gainsight связано с запуском вымогателя ShinySp1d3r 18652Как расширение Crypto Copilot незаметно похищает средства пользователей Solana на...