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

Почему я должен выбирать UUID над номером автоматического увеличения для моего первичного ключа сущности? Каковы плюсы и минусы?

Ответы

Ответ 1

У Андрея и Mjg были хорошие моменты, но я бы добавил важную проблему с производительностью, которая значительна.

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

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

Ответ 2

UUID глобально уникальны и могут генерироваться параллельно без связи между кластерными серверами БД. Таким образом Идентификаторы объектов более синергетичны с очерчиванием и распределением.. UUID обычно хранятся в 128 бит.

Автоматически увеличивающиеся целые числа являются более удобными для пользователя (ну, в любом случае, короче и запоминающимися) и автоматически разрешают сортировку по порядку вставки. Целые элементы обычно хранятся в 32 или 64 битах.

Ответ 3

Основной профессионал, который вы можете создать самостоятельно. Con - то, что он больше.