Skip to main content

Що таке шардування в MongoDB?

Шардування в MongoDB - це механізм горизонтального масштабування, за якого дані з однієї колекції розподіляються по різних серверах (шардах). Кожен шард зберігає лише частину даних, а разом вони виглядають як єдина база. Мета - витримувати великі обсяги даних і високе навантаження на запис/читання.

Як це працює

Кластер шардування складається з:

КомпонентРоль
Shardsзберігають реальні дані (кожен - лише свою частину)
Config servers (CSRS)зберігають метадані про те, де лежать які документи
Mongosроутер: приймає запит від клієнта й направляє його на потрібний шард

На чому ділять дані

При шардуванні обирають shard key - поле, за яким MongoDB вирішує, куди помістити документ. Наприклад:

javascript
{ shardKey: 1 }

Документи з різними значеннями shard key потраплять на різні шарди.

Що це дає

  1. Масштабування обсягу даних - колекція може рости майже нескінченно
  2. Масштабування запису - навантаження розподіляється між серверами
  3. Масштабування читання - запити виконуються паралельно на різних шардах
  4. Продуктивність - немає вузького місця у вигляді одного сервера

Коли це потрібно

  • даних більше, ніж витримує один сервер
  • високий потік запису/запитів
  • колекції ростуть швидше, ніж масштабується залізо вертикально

Підсумок

Шардування - це розподіл даних по кількох серверах, щоб MongoDB могла обробляти великі обсяги й високі навантаження, лишаючись швидкою і масштабованою.

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

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

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