Что такое UUID v7 — идентификатор с временем
Что такое UUID v7: Unix-время в начале идентификатора, сортировка в БД и отличие от случайного UUID v4.
UUID v7 — это версия UUID, в которой старшие биты содержат Unix-время создания в миллисекундах, а остальные — случайные значения. Благодаря этому идентификаторы идут в порядке времени создания, что удобно для сортировки и поиска по времени.
Главный плюс перед случайным v4 — снижение фрагментации B-tree в базах данных: новые записи добавляются в конец индекса, а не в случайные места. Это ускоряет вставку на больших таблицах и упрощает отладку по времени создания.
В ToolsHelper генератор UUID поддерживает v7 с показом извлечённого времени. Обрати внимание: поддержка v7 в старых системах может отсутствовать — тогда для совместимости оставляют v4.
Первые 48 бит UUID версии 7 — миллисекунды Unix. Поэтому список таких id примерно отсортирован по созданию. Случайный хвост не даёт двум вызовам в одну миллисекунду совпасть. Время читается без ключа. Здесь описана эта раскладка. Сам id выдаёт конвертер.
Частые вопросы
Можно извлечь время?
Да, студия UUID показывает decoded time для v7.
v7 лучше v4 всегда?
Не всегда: для совместимости и случайных id подходит v4, а для индексов и сортировки — v7.
