UUID против автоинкрементного целочисленного первичного ключа
Сравниваем, что выбрать в качестве первичного ключа базы данных: UUID или автоинкрементное целое число.
Автоинкрементное целое число
Компактное, быстрое и обеспечивает хорошую локальность индекса. Однако несколько баз данных сложно объединять, порядковый номер раскрывает общее количество записей, а приложению трудно заранее сформировать ID или генерировать их распределённо.
UUID
В распределённой среде каждый узел может генерировать значения самостоятельно без коллизий, а сами значения трудно предсказать. Зато 128 бит больше целого числа, а случайный v4 вставляется в индекс вразброс, что может снижать производительность записи.
Критерии выбора
Для внутренней системы с одной базой данных целое число проще и эффективнее. Если нужны распределённая система, публичный API или объединение данных из нескольких источников, выгоднее UUID, особенно упорядоченный по времени v7. Часто применяют и компромисс: внутренний целочисленный PK вместе с UUID для внешнего раскрытия.