Производительность UUID и советы по хранению
Рассматриваем факторы, влияющие на производительность UUID при массовой генерации и хранении в базе данных.
Производительность генерации
Генерация UUID очень быстрая и обычно не является узким местом. И в браузере, и на сервере нативные API вроде crypto.randomUUID() работают быстрее всего и безопаснее всего. Даже создание тысяч значений за раз не создаёт большой нагрузки.
Размер хранения
Если хранить UUID в виде строки (36 символов), он занимает более чем вдвое больше места, чем 16-байтовый двоичный формат. Использование двоичного хранения, такого как тип uuid в PostgreSQL или BINARY(16) в MySQL, повышает эффективность хранения и индексов.
Локальность индекса
Случайный v4 вставляется вразнобой по всему индексу, что может снижать производительность записи. Для таблиц с частыми вставками используйте отсортированный по времени v7 или ULID, чтобы вставка шла последовательно в конец индекса и уменьшалось расщепление страниц.