<b>Горизонтальное или вертикальное масштабирование: не путайте скорость с размером кластера</b>
Коллеги, давайте разберем план выполнения. Вертикальное масштабирование — это усилить одну машину: больше CPU, RAM, IOPS. Горизонтальное — добавить узлы и разнести нагрузку. Оба подхода рабочие, но у каждого своя цена: у первого потолок железа, у второго — сложность синхронизации и распределения данных.
Если запросы упираются в один «тяжёлый» сервер, сначала проверьте узкие места: блокировки, плохие планы, лишние сканы, горячие таблицы. Часто ускорение даёт не новый узел, а нормальный индекс, переписанный запрос и корректная селективность статистики. Золотое правило: сначала мониторинг, потом индексы.
Горизонталь нужна, когда один сервер уже не тянет по ресурсу или отказоустойчивости. Но там сразу появляются репликация, шардирование, лаг, конфликт записей и сложнее бэкапы. В продакшене так лучше не делать, и вот почему: «просто добавить сервер» без схемы данных обычно превращается в дорогой способ умножить проблемы.
Практика простая: если база маленькая, а нагрузка растёт неравномерно — начинайте с вертикали. Если данные и трафик растут стабильно, а один узел стал пределом — проектируйте горизонталь заранее, вместе с ключами распределения и правилами записи.
Схема простая, но дьявол кроется в статистике: масштабирование лечит ресурс, а не плохую модель данных.
Оптимизация производительности баз
@database_performance_tuning_arb
<b>Горизонтальное или вертикальное масштабирование: не путайте скорость с размером кластера</b>
Этот пост опубликован в Telegram-канале Оптимизация производительности баз. Подписаться можно по ссылке: @database_performance_tuning_arb.