Ответ
Шардинг — это горизонтальное разделение базы данных на части (шарды) для распределения нагрузки. Каждый шард содержит подмножество данных и работает независимо.
Пример:
type Shard struct {
ID int
Store map[string]string
}
func (s *Shard) Get(key string) string {
return s.Store[key]
}
func (s *Shard) Set(key, value string) {
s.Store[key] = value
}
Плюсы:
- Масштабируемость (можно добавлять шарды)
- Распределение нагрузки
Минусы:
- Сложность транзакций между шардами
- Ребалансировка при изменении количества шардов
Шардинг часто применяется в высоконагруженных системах (соцсети, маркетплейсы).