Встречается на собеседованиях • сегодня
Как хранятся связанные таблицы при шардировании
При шардировании связанные таблицы хранятся так, чтобы минимизировать межшардовые соединения. Основные подходы:
- Колокация (Co-location) - связанные данные размещаются на одном шарде по общему ключу. Например, заказы и их позиции шардируются по
customer_id:
java
// Шардирование по customer_id
int shardNumber = Math.abs(customerId.hashCode()) % totalShards;-
Денормализация - дублирование данных в разных шардах для избежания JOIN'ов.
-
Ссылочная целостность - хранение ID связанных сущностей без гарантии их наличия (требует проверок).
-
Транзакционные границы - сложные связи могут требовать двухфазных коммитов (2PC), но это снижает производительность.
Оптимальный выбор зависит от паттернов доступа - частые JOIN'ы требуют колокации, а редкие - могут использовать ссылки.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы