Не очень хороший пост в блоге. Идентификаторы GUID хороши в ситуации, когда клиенту необходимо создать свой собственный первичный ключ. Если все в порядке, когда сервер генерирует ключ, используйте первичный ключ с автоинкрементным целым числом.
Позвольте мне объяснить, почему это не очень хороший пост в блоге. Он говорит:
GUID / UUID очень случайны. Поэтому ВСТАВКА в указатель означает много прыжков.
Guid - это на самом деле просто 16-байтовое шестнадцатеричное число; так что я мог бы придумать наивный индекс, в котором можно было бы выполнить одну вставку за постоянное время, просто создав массив 32/16, который вы могли бы проходить через цифру за цифрой. Таким образом, вставка N элементов с моим наивным индексом может быть выполнена за время Log (N). Аргумент в сообщении блога ужасен. Я не уверен, что быстрая вставка GUID есть, но «случайность» не имеет ничего общего с алгоритмической сложностью.
Вот хороший пост в блоге с хорошими ссылками:
https://blog.codinghorror.com/primary-keys-ids-versus-guids/
Мне особенно нравится эта ссылка:
http://web.archive.org/web/20150511162734/http://databases.aspfaq.com/database/what-should-i-choose-for-my-primary-key.html
Хорошее обсуждение компромиссов различных ключей.