Skip to main content

Що таке шардування (sharding)?

Шардування (sharding) - це метод горизонтального масштабування, за якого дані бази діляться на кілька незалежних фрагментів (шардів), і кожен шард зберігається на окремому сервері.

Як це працює

Замість однієї величезної бази, де всі дані лежать разом, створюється кілька «міні-баз», кожна з яких містить лише частину інформації. Наприклад:

  • користувачі з ID від 1 до 1 000 000 - на сервері A,
  • від 1 000 001 до 2 000 000 - на сервері B,
  • і так далі.

Навіщо це потрібно

  • Швидкість. Кожен сервер обробляє менше даних, тому запити виконуються швидше.
  • Масштабованість. Можна додавати нові сервери в міру зростання даних, не перевантажуючи старі.
  • Стійкість до відмов. За збою одного шарду решта продовжують працювати.

Складнощі

  • Потрібно правильно обирати ключ шардування (за ID, регіоном тощо).
  • Важче виконувати запити, що зачіпають кілька шардів (наприклад, агрегати за всіма користувачами).
  • Потрібна додаткова логіка в застосунку чи middleware для маршрутизації запитів.

Підсумок: Шардування - це спосіб «розрізати» базу на незалежні шматки, щоб збільшити її продуктивність, масштаб і стійкість.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.