Шардинг
Шардинг (Sharding) — разбиение на фрагменты
Суть в одном предложении
Шардинг — горизонтальное разбиение данных на шарды по разным узлам для масштабирования.
Краткое определение
Шардинг — горизонтальное разбиение данных на независимые части (шарды), распределённые по разным узлам.
Оригинал и перевод
- Язык: английский
- Оригинал: Sharding
- Буквальный перевод: разбиение на осколки/фрагменты
Синонимы и варианты написания
- Sharding
Происхождение
Термин закрепился в практике масштабирования баз данных, когда один сервер перестаёт помещать объём данных или нагрузку.
Где используется
- Крупные БД (события, логи, пользовательские данные)
- Высоконагруженные OLTP-системы
Когда это важно
При росте объёма данных и нагрузки: шардинг позволяет масштабироваться горизонтально, но усложняет запросы и транзакции.
Подробное объяснение
Ключевая идея — выбрать shard key (например user_id) и распределять записи по шардам. Типовые проблемы:
- кросс-шардовые JOIN/агрегации усложняются;
- транзакции между шардами становятся дорогими/нетривиальными;
- перенос данных при изменении количества шардов требует планирования.
Шардинг часто путают с партиционированием внутри одного инстанса — это разные уровни.
Аналоги и связанные термины
- Partitioning
- Consistent hashing
- Distributed SQL
- Rebalancing
Пример использования
«Таблицу событий зашардили по tenant_id: каждый клиент живёт на своём шарде.»
Мини‑FAQ
- Шардинг и партиционирование — одно и то же? Ответ: Партиционирование часто внутри одного инстанса; шардинг — распределение по разным узлам.
Смотри также
- Replication
- Partitioning
- ACID