Что такое горизонтальный шардинг

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). - Усложнение транзакций. Подходит для сценариев с большими объемами данных и высокой нагрузкой (соцсети, аналитика).