TGViewer
Системный анализ на максималках Системный анализ на максималках @system_analysis_max · 880 subscribers
Post #16 1.03K
Реплицирование vs Партиционирование vs Шардирование

Попытаюсь простыми словами объяснить, что это такое и для чего используется

Реплицирование

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

В терминах БД это репликация – процесс создания копий (реплик) базы данных и поддержка их актуальности на разных серверах

Не путать с бэкапами! Бэкап означает создание копий до определенного момента и хранение их для аварийного восстановления, но без поддержки в актуальном состоянии


Цель: повышение отказоустойчивости и доступности. Если потеряем одну БД, то будем уверены, что где-то есть актуальная копия🎉

Партиционирование

Снова пример из жизни: у нас дома есть большой шкаф👕, вплотную забитый носками. Представим, их там 1200. Чтобы освободить место, мы разгребаем вещи и складываем 300 носков в комод, 300 в тумбочку, 300 куда-нибудь еще, а 300 оставляем в шкафу

На языке БД это партиционирование – метод разделения больших таблиц на много маленьких секций. Важно, что все секции должны находиться на одном сервере

Партиционирование используют для распределения нагрузки, обхода ограничений на размер таблиц (менее актуально с современными технологиями) и для манипуляций с данными (охлаждение, удаление)

📌 Пример: у нас есть табличка Users, в которой 1 млн пользователей. Если использовать один из методов партиционирования, то таблица Users разделится на две, в одной будут юзеры с id от 1 до 500 тыс, во второй от 500 тыс до 1 млн

Шардирование

Вспоминаем предыдущий пример, но теперь вещи из шкафа развозим в гараж, на дачу и домой к родителям. Получается, теперь 1200 наших носков хранятся в четырех удаленных местах.

В системах это шардирование – подход, предполагающий разделение таблиц на независимые сегменты (шарды). Важно, что каждый сегмент управляется разными серверами

К шардированию приходят, когда данные не вмещаются в один сервер, или у нас ограничены его ресурсы

Когда что использовать?

Реплицирование — если нужны отказоустойчивость и читаемая масштабируемость. Данные на разных серверах
Партиционирование — если таблица очень большая, но сервер один. Данные хранятся на одном сервере, но в разных разделах/партициях
Шардирование — если данных слишком много для одного сервера. Данные лежат на разных серверах

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

—————

Этот пост не раскрывает особенности каждого из методов: в следующих расскажу о каждом отдельно

#полезное_системный_анализ
  • 🔥 19
  • 👍 3
  • ❤ 1
  • ❤‍🔥 1
More from @system_analysis_max
  1. Mar 27, 2026Прошел испытательный срок в Альфе 🅰️ Правда, это было 2 месяца назад, но время порефлекси…
  2. Mar 16, 2026Продолжая предыдущий пост Как вы помните, на прошлой неделе объявили о закрытии школы Syst…
  3. Mar 11, 2026Про опыт преподавания Давненько не писал в блог, пора исправляться Последние два месяца вы…
  4. Feb 10, 2026WebSocket на практике 📌 А вы знали, что в Postman можно протестировать не только REST API…
  5. Jan 21, 2026RabbitMQ на практике 📌 Часто ко мне на консультации приходят с запросом отточить какие-ни…
  6. Jan 15, 2026Первый пост в 2026 году Будет очень простым, потому что после выходных я еще не до конца в…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →