Навіщо замість числового ID
- Не розкриває кількість записів у таблиці (
/users/1 vs /users/550e8400-…) - Можна генерувати на клієнті або в розподіленій системі без звернення до БД
- Немає конфліктів при злитті даних з кількох СУБД
Версії
- UUID v4 — повністю випадковий. Найпоширеніший
- UUID v7 — включає timestamp, тому сортується хронологічно. Краще для первинних ключів у БД (менше фрагментації індексу)
Недолік
UUID v4 у якості первинного ключа InnoDB спричиняє фрагментацію B-Tree індексу через випадковий порядок вставки. UUID v7 або ULID вирішують цю проблему.