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

Как хранятся связанные таблицы при шардировании

При шардировании связанные таблицы хранятся так, чтобы минимизировать межшардовые соединения. Основные подходы:

  1. Колокация (Co-location) - связанные данные размещаются на одном шарде по общему ключу. Например, заказы и их позиции шардируются по customer_id:
java
// Шардирование по customer_id
int shardNumber = Math.abs(customerId.hashCode()) % totalShards;
  1. Денормализация - дублирование данных в разных шардах для избежания JOIN'ов.

  2. Ссылочная целостность - хранение ID связанных сущностей без гарантии их наличия (требует проверок).

  3. Транзакционные границы - сложные связи могут требовать двухфазных коммитов (2PC), но это снижает производительность.

Оптимальный выбор зависит от паттернов доступа - частые JOIN'ы требуют колокации, а редкие - могут использовать ссылки.

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

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

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

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