Ssylka

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

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

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

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

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


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

15287Жидкость, восстанавливающая форму: нарушение законов термодинамики 15286Аркадия ведьм: загадка Чарльза годфри Леланда и её влияние на современную магию 15285Кто станет новым героем Звёздных войн в 2027 году? 15283Ануше Ансари | Почему космические исследования важны для Земли 15282Гизем Гумбуская | Синтетический морфогенез: самоконструирующиеся живые архитектуры по... 15281Как предпринимателю остаться хозяином своей судьбы? 15280Люси: путешествие к древним обломкам солнечной системы 15279Роберт Лиллис: извлеченные уроки для экономически эффективных исследований дальнего... 15278Почему супермен до сих пор остаётся символом надежды и морали? 15277Райан Гослинг в роли нового героя «Звёздных войн»: что известно о фильме Star Wars:... 15276Почему экваториальная Гвинея остаётся одной из самых закрытых и жестоких диктатур мира? 15275Почему морские слизни становятся ярче под солнцем? 15274Глен Вейль | Можем ли мы использовать ИИ для построения более справедливого общества? 15273Лириды: где и как увидеть древний звездопад в этом апреле? 15272Сдержит ли налог на однодневных туристов в Венеции наплыв гостей?