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

Для чего нужно шардирование

Шардирование — это горизонтальное разделение базы данных на части (шарды), распределённые по разным серверам. Основные цели:

  1. Масштабируемость — распределение нагрузки между серверами, чтобы обрабатывать большие объёмы данных и запросов.
  2. Производительность — уменьшение времени отклика, так как каждый шард содержит только часть данных.
  3. Отказоустойчивость — при падении одного шарда остальные продолжают работать.

Пример шардирования по диапазону (range-based):

python
# Определяем шард по ID пользователя
def get_shard(user_id):
    if user_id < 1000:
        return "shard1"
    elif user_id < 2000:
        return "shard2"
    else:
        return "shard3"

Основные стратегии:

  • По диапазону (range-based)
  • По хешу (hash-based)
  • По списку (list-based)

Минусы: сложность JOIN-запросов между шардами, необходимость балансировки.

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

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

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

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