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

Что такое горизонтальный шардинг

Горизонтальный шардинг (sharding) — это метод разделения базы данных на части (шарды) по строкам, где каждая шарда содержит подмножество данных. Например, данные могут делиться по диапазону значений (ID пользователей, даты) или хэшу ключа.

Преимущества:

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

Пример:

python
# Упрощенный пример выбора шарды по хэшу user_id
def get_shard(user_id: int, total_shards: int) -> int:
    return user_id % total_shards

# Для user_id=123 и 4 шард:
shard = get_shard(123, 4)  # вернет 3 (123 % 4 = 3)

Недостатки:

  • Сложность JOIN-запросов между шардами.
  • Неравномерное распределение данных (hotspots).
  • Усложнение транзакций.

Подходит для сценариев с большими объемами данных и высокой нагрузкой (соцсети, аналитика).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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