Shard key — это поле (или комбинация полей), которое MongoDB использует для разделения и распределения документов между несколькими шардами в кластере. Оно определяется при включении шардирования для коллекции и не может быть изменено после установки.
MongoDB делит диапазон значений shard key на чанки, затем назначает каждый чанк определённому шарду. По мере роста данных чанки автоматически разбиваются и перебалансируются между шардами, чтобы поддерживать равномерное распределение.
userId. Поля с низкой кардинальностью, такие как status или country, создают слишком мало чанков, что ограничивает масштабируемость.db.orders.createIndex({ customerId: 1 })
sh.shardCollection("mydb.orders", { customerId: 1 })
Здесь customerId обеспечивает высокую кардинальность и хорошо совпадает с типичными паттернами запросов.
Хорошо выбранный shard key обеспечивает равномерное распределение данных, эффективную маршрутизацию запросов и горизонтальную масштабируемость. Плохой shard key приводит к hotspot'ам, несбалансированным шардам и деградации производительности кластера.
После того как для коллекции определен ключ шардирования, его можно изменить на другое поле, если возникнут проблемы с производительностью.
Новый — ещё не проверен сообществом
Вы