Почему UUID не может быть просто отметкой времени с порядковым номером? - PullRequest
0 голосов
/ 11 июля 2019

Я только что прочитал спецификацию ulid , и я не знаю, почему она конвертирует метку времени в сложную строку? Разве это не просто отметка времени с порядковым номером?

Ответы [ 2 ]

2 голосов
/ 11 июля 2019

Фактически, отметка времени с порядковым номером может всегда быть уникальной. Но это будет зависеть от того, чтобы один и тот же порядковый номер никогда не выдавался более одного раза для данной временной отметки. Столбец автоинкремента в базе данных приближается к этому, отслеживая, какие значения уже используются.

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

1 голос
/ 11 июля 2019

Номер будет длиной 39 цифр (так как есть 10 разных цифр).Используя также другие символы (36?), ULID короче.((80 + 24bits) / log²(10) > (80 + 24bits) / log²(32)).

с порядковым номером

Последовательные числа могут работать на одном компьютере, но не на нескольких, генерирующих идентификаторы одновременно (например, распределенныебаза данных).Конечно, вы могли бы затем добавить идентификатор машины (это то, что делают другие UID), но затем вы должны убедиться, что эти идентификаторы машины тоже уникальны.Используя очень длинную случайную часть, очень маловероятно, что две машины сгенерируют одно и то же случайное число одновременно (1 / 2 ** 80).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...