AG UUID

UUID против автоинкрементного целочисленного первичного ключа

Сравниваем, что выбрать в качестве первичного ключа базы данных: UUID или автоинкрементное целое число.

Автоинкрементное целое число

Компактное, быстрое и обеспечивает хорошую локальность индекса. Однако несколько баз данных сложно объединять, порядковый номер раскрывает общее количество записей, а приложению трудно заранее сформировать ID или генерировать их распределённо.

UUID

В распределённой среде каждый узел может генерировать значения самостоятельно без коллизий, а сами значения трудно предсказать. Зато 128 бит больше целого числа, а случайный v4 вставляется в индекс вразброс, что может снижать производительность записи.

Критерии выбора

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