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

Что такое разделение таблиц на части

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

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

  • Улучшение производительности (меньше данных на одном сервере)
  • Масштабируемость (можно добавлять новые шарды)
  • Отказоустойчивость (если один шард упадёт, остальные работают)

Пример:

java
// Упрощённый пример выбора шарда по user_id
int shardId = userId % 3; // 3 шарда
String shardUrl = "jdbc:mysql://shard-" + shardId + ".example.com/db";
Connection connection = DriverManager.getConnection(shardUrl, user, pass);

Недостатки:

  • Сложность JOIN-запросов между шардами
  • Нужен механизм балансировки и решардинга
  • Усложнение транзакций (2PC или Saga)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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