MongoDB - Преимущество использования 12-байтовой строки в качестве уникального идентификатора вместо инкрементного значения - PullRequest
0 голосов
/ 24 мая 2018

Существует ли какая-либо конкретная причина, по которой MongoDB генерирует uuid в качестве уникального идентификатора, а не инкрементные значения в качестве уникального идентификатора?.

1 Ответ

0 голосов
/ 25 мая 2018

Для увеличения значений или последовательностей требуется центральная точка отсчета, которая является ограничивающим фактором для масштабирования.Идентификаторы ObjectID разработаны как разумно уникальные идентификаторы, которые можно независимо генерировать в распределенной среде с монотонно увеличивающимися значениями (ведущий компонент метки времени) для приблизительного упорядочения.

Идентификаторы объектов обычно генерируются драйверами MongoDB, поэтому нет необходимостивыполните обход сервера, чтобы найти следующий доступный _id, или дождитесь, когда сервер выполнит операцию вставки, чтобы узнать, что было выделено _id.Если драйвер или клиентское приложение вставляет документ без включения значения _id, сервер mongod сгенерирует объект ObjectID.

Нет строгого требования использовать идентификаторы объектов в MongoDB: вы можете указать свойсобственные значения _id, если для ваших данных существует более естественный уникальный ключ или вы предпочитаете альтернативный формат первичного ключа.

...