Когда я должен использовать uuid.uuid1 () по сравнению с uuid.uuid4 () в Python?

Иногда существует два сведения, которые Вы просто всегда раздаете вместе, ли в качестве параметра, или возвращаемое значение, или что бы то ни было. Несомненно, Вы могли записать свой собственный объект, но если это - всего два маленьких примитива или подобный, иногда пара кажется очень хорошо.

197
задан guettli 17 November 2013 в 23:07
поделиться

2 ответа

uuid1 () гарантированно не вызовет никаких коллизий (в предположении, что вы не создаете слишком много из них одновременно). Я бы не стал его использовать, если важно, чтобы между uuid и компьютером не было связи, так как MAC-адрес используется, чтобы сделать его уникальным для разных компьютеров.

Вы можете создавать дубликаты, создавая больше чем 2 14 uuid1 менее чем за 100 нс, но это не проблема для большинства случаев использования.

uuid4 () генерирует, как вы сказали, случайный UUID. Вероятность столкновения действительно, действительно, действительно мала. Достаточно маленький, чтобы не беспокоиться об этом. Проблема в том, что плохой генератор случайных чисел увеличивает вероятность столкновений.

Этот отличный ответ Боба Амана хорошо резюмирует его. без злоумышленников, исчезновение всей жизни на земле будет происходит задолго до того, как у вас появится коллизия, даже на UUID версии 4, даже если вы создаете довольно много UUID в секунду.

243
ответ дан 23 November 2019 в 05:16
поделиться

Один случай, когда вы можете рассмотреть uuid1 () , а не uuid4 () , - это , когда UUID создаются на отдельных машинах , например, когда несколько онлайн-транзакций обрабатываются на нескольких машинах в целях масштабирования.

В такой ситуации риски возникновения коллизий из-за неправильного выбора способа инициализации генераторов псевдослучайных чисел, например, а также потенциально большее количество созданных UUID повышает вероятность создания дублирующихся идентификаторов.

Другой интерес uuid1 () в этом случае заключается в том, что машина, на которой изначально был создан каждый GUID, неявно записывается ( в «узловой» части UUID). Эта информация, а также информация о времени могут помочь хотя бы при отладке.

32
ответ дан 23 November 2019 в 05:16
поделиться
Другие вопросы по тегам:

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