Встречается на собеседованиях • сегодня

Что такое шардирование в базах данных

Шардирование — это горизонтальное разделение данных в БД на части (шарды), распределённые по разным серверам. Каждый шард содержит подмножество данных, что позволяет масштабировать систему и распределять нагрузку.

Основные принципы:

  • Данные делятся по ключу шардирования (например, user_id)
  • Каждый шард независим и может находиться на отдельном сервере
  • Запросы направляются только в нужный шард

Пример шардирования по диапазону:

java
// Определяем шард для пользователя
public Shard determineShard(long userId) {
    if (userId < 1000) return shard1;
    else if (userId < 2000) return shard2;
    else return shard3;
}

Плюсы:

  • Горизонтальное масштабирование
  • Повышение производительности
  • Отказоустойчивость

Минусы:

  • Сложность реализации JOIN между шардами
  • Проблемы с транзакционностью
  • Неравномерное распределение нагрузки (hot spots)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы