Sharding MongoDb и уникальные ограничения

Каков наилучший способ достижения уникальности и шардинга? например, мы хотим осколок user коллекция на основе уникальной username что пользователи выбирают для себя и они неизменны

Я думаю, что лучшим решением является хэширование, но, к сожалению, мы не можем обеспечить уникальность хешированного индекса.

Так хорошо ли раскалывать? есть ли рекомендуемое решение?

1 ответ

Решение

Если вам действительно нужна полная уникальность для этого поля (имя пользователя) - вы можете просто использовать его как "нормальный" (одиночное поле - восходящий / нисходящий) ключ шардинга.

В этом случае каждый документ будет "индивидуальным", так как он вообще не имеет больших требований.

Тем не менее, это сделает ваш Индекс больше, в то время как обычно это делает хеширование (да, вы не можете гарантировать уникальность, но если у вас нет особого случая - это не должно быть реальной проблемой)

Возможно, вы захотите взглянуть на лок в этом обсуждении: разница в производительности Mongodb между индексами Hash и Ascending (есть ли причина не использовать хэш в неупорядоченном поле?)

Другие вопросы по тегам