Що таке шардування (sharding)?
Шардування (sharding) - це метод горизонтального масштабування, за якого дані бази діляться на кілька незалежних фрагментів (шардів), і кожен шард зберігається на окремому сервері.
Як це працює
Замість однієї величезної бази, де всі дані лежать разом, створюється кілька «міні-баз», кожна з яких містить лише частину інформації. Наприклад:
- користувачі з ID від 1 до 1 000 000 - на сервері A,
- від 1 000 001 до 2 000 000 - на сервері B,
- і так далі.
Навіщо це потрібно
- Швидкість. Кожен сервер обробляє менше даних, тому запити виконуються швидше.
- Масштабованість. Можна додавати нові сервери в міру зростання даних, не перевантажуючи старі.
- Стійкість до відмов. За збою одного шарду решта продовжують працювати.
Складнощі
- Потрібно правильно обирати ключ шардування (за ID, регіоном тощо).
- Важче виконувати запити, що зачіпають кілька шардів (наприклад, агрегати за всіма користувачами).
- Потрібна додаткова логіка в застосунку чи middleware для маршрутизації запитів.
Підсумок: Шардування - це спосіб «розрізати» базу на незалежні шматки, щоб збільшити її продуктивність, масштаб і стійкість.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.