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

Как делил базу данных в последнем проекте

В последнем проекте использовали горизонтальное шардирование (sharding) по user_id для распределения нагрузки. Ключевые моменты:

  1. 4 шарда на PostgreSQL, каждый на отдельном сервере
  2. Шардирование по хэшу user_id % 4
  3. Для кросс-шардовых запросов использовали отдельную реплику с объединёнными данными

Пример определения шарда:

java
public int determineShard(long userId) {
    return (int) (userId % SHARD_COUNT);
}

Плюсы:

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

Минусы:

  • Пришлось дорабатывать ORM для работы с шардированием
  • Сложнее делать аналитические запросы
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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