Что такое шардинг

«Что такое шардинг» — вопрос из категории Базы данных, который задают на 24% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Пример:

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
}

Плюсы:

  • Масштабируемость (можно добавлять шарды)
  • Распределение нагрузки

Минусы:

  • Сложность транзакций между шардами
  • Ребалансировка при изменении количества шардов

Шардинг часто применяется в высоконагруженных системах (соцсети, маркетплейсы).