Sharding MongoDb и уникальные ограничения
Каков наилучший способ достижения уникальности и шардинга? например, мы хотим осколок user
коллекция на основе уникальной username
что пользователи выбирают для себя и они неизменны
Я думаю, что лучшим решением является хэширование, но, к сожалению, мы не можем обеспечить уникальность хешированного индекса.
Так хорошо ли раскалывать? есть ли рекомендуемое решение?
1 ответ
Если вам действительно нужна полная уникальность для этого поля (имя пользователя) - вы можете просто использовать его как "нормальный" (одиночное поле - восходящий / нисходящий) ключ шардинга.
В этом случае каждый документ будет "индивидуальным", так как он вообще не имеет больших требований.
Тем не менее, это сделает ваш Индекс больше, в то время как обычно это делает хеширование (да, вы не можете гарантировать уникальность, но если у вас нет особого случая - это не должно быть реальной проблемой)
Возможно, вы захотите взглянуть на лок в этом обсуждении: разница в производительности Mongodb между индексами Hash и Ascending (есть ли причина не использовать хэш в неупорядоченном поле?)