Что такое горизонтальный шардинг
Python
Middle
Без компании
Что такое горизонтальный шардинг
Ответы
Горизонтальный шардинг (sharding) — это метод разделения базы данных на части (шарды) по строкам, где каждая шарда содержит подмножество данных. Например, данные могут делиться по диапазону значений (ID пользователей, даты) или хэшу ключа.
**Преимущества:**
- Уменьшает нагрузку на отдельные серверы.
- Улучшает производительность запросов (меньше данных в каждой шарде).
- Позволяет масштабироваться горизонтально.
**Пример:**
```
# Упрощенный пример выбора шарды по хэшу user_id
def get_shard(user_id: int, total_shards: int) -> int:
return user_id % total_shards
# Для user_id=123 и 4 шард:
shard = get_shard(123, 4) # вернет 3 (123 % 4 = 3)
```
**Недостатки:**
- Сложность JOIN-запросов между шардами.
- Неравномерное распределение данных (hotspots).
- Усложнение транзакций.
Подходит для сценариев с большими объемами данных и высокой нагрузкой (соцсети, аналитика).