Що таке шардування в MongoDB?
Шардування в MongoDB - це механізм горизонтального масштабування, за якого дані з однієї колекції розподіляються по різних серверах (шардах). Кожен шард зберігає лише частину даних, а разом вони виглядають як єдина база. Мета - витримувати великі обсяги даних і високе навантаження на запис/читання.
Як це працює
Кластер шардування складається з:
| Компонент | Роль |
|---|---|
| Shards | зберігають реальні дані (кожен - лише свою частину) |
| Config servers (CSRS) | зберігають метадані про те, де лежать які документи |
| Mongos | роутер: приймає запит від клієнта й направляє його на потрібний шард |
На чому ділять дані
При шардуванні обирають shard key - поле, за яким MongoDB вирішує, куди помістити документ. Наприклад:
javascript
{ shardKey: 1 }Документи з різними значеннями shard key потраплять на різні шарди.
Що це дає
- Масштабування обсягу даних - колекція може рости майже нескінченно
- Масштабування запису - навантаження розподіляється між серверами
- Масштабування читання - запити виконуються паралельно на різних шардах
- Продуктивність - немає вузького місця у вигляді одного сервера
Коли це потрібно
- даних більше, ніж витримує один сервер
- високий потік запису/запитів
- колекції ростуть швидше, ніж масштабується залізо вертикально
Підсумок
Шардування - це розподіл даних по кількох серверах, щоб MongoDB могла обробляти великі обсяги й високі навантаження, лишаючись швидкою і масштабованою.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.