@quest2017

Поддерживает mongodb уникальные ключи?

Вот тут один из разработчиков mongodb утверждает что mongodb не поддерживает уникальность множества ключей в пределах всех шардов и что если создать не уникальные ключи все будет очень плохо - https://www.youtube.com/watch?v=3Yl4hrMb9WA&featur...

Вопрос: как это возможно записать в mongodb не уникальные ключи если у нас уникальность в пределах шарда? мы же не выбираем на какой шард писать? он говорит о каких то пользовательских ключах либо о возможной не уникальности ObjectId в процессе решардинга?
  • Вопрос задан
  • 411 просмотров
Пригласить эксперта
Ответы на вопрос 1
@RidgeA
https://docs.mongodb.com/manual/core/sharding-shar...

1. Для коллекции, которая разбита на шарды уникальными в пределах всей коллекции будут _id, shard key и составной индекс, в котором shard key является префиксом (первым значением в составном индексе)

2. Создать уникальный индекс, если коллекция пошардена - не получится.

3. Пошардить коллекцию, если есть уникальный индекс - не получится.

Не уверен, но предполагаю, что это связано с тем, что для того, что бы вставить новую запись в пошарденную коллекцию при наличии уникального ключа придется обратится к каждому шарду и узнать какие значения есть для данного поля в каждом шарде. А это может быть дорого. Что касается shard key и _id они, скорее всего, обрабатываются на mongos, перед отправкой запроса на добавление в определенный шард - по-этому гарантируется их уникальность.

Для коллекции, которая не пошардена уникальные ключи поддерживаются.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы