Удивительное и невероятное о первичных ключах PostgreSQL: serial, bigserial, UUID v4, ULID, UUID v6 HD

Удивительное и невероятное о первичных ключах PostgreSQL: serial, bigserial, UUID v4, ULID, UUID v6
00:51:10
Обнаружено блокирование рекламы на сайте

Для существования нашего сайта необходим показ рекламы. Просим отнестись с пониманием и добавить сайт в список исключений вашей программы для блокировки рекламы (AdBlock и другие).

12n.ru 18464 ролика

serial, bigserial, UUID v4, ULID, UUID v6.

Всё о первичных ключах в PostgreSQL. Простые и составные, естественные и искусственные, искусственные числовые, UUID v4, ULID, UUID v6 — в чём разница и когда что выбирать.

Книжный клуб:
t.me/t0digital/528
botanim.to.digital/
botanim_to_digital_bot.t.me/

ULID для PostgreSQL:
github.com/geckoboard/pgulid/blob/master/pgulid.sql (но возвращает text)

UUID v6 для PostgreSQL:
gist.github.com/fabiolimace/515a0440e3e40efeb234e12644a6a346

00:00:00 План
00:00:45 Что такое первичный ключ
00:00:44 Простые и составные ключи
00:02:53 Естественные и искусственные ключи
00:07:04 Что лучше — естественные или искусственные ключи?
00:14:21 UUID, GUID
00:17:08 Преимущества UUID в качестве первичного ключа
00:19:55 Недостатки UUID в качестве первичного ключа
00:26:26 CLUSTER
00:27:55 ULID
00:31:24 UUID v6
00:32:31 Префиксы первичных ключей
00:35:55 Реализация естественного ключа
00:36:36 Реализация ключа числовой последовательности
00:40:02 Реализация IDENTITY COLUMN
00:41:50 Реализация UUID v4
00:43:25 Реализация UUID v6
00:45:17 Размер данных
00:47:22 Резюме
00:49:50 Благодарность

/****************** about ******************/

Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:

— Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
— Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.

Telegram канал — t.me/t0digital
ВК — vk.com/digitalize.team
RuTube — rutube.ru/channel/24802975/about/
Дзен — dzen.ru/id/6235d32cb64df01e6e78c883

RSS
Владимир Барков
15:20
Главный недостаток естественного ключа заключается в том что как только на запись с таким ключом появляется ссылка из другой таблицы, то менять этот ключ придётся как в самой таблице, так и во всех таблицах где на запись есть ссылки. Причём делать это придётся в одной транзакции с отложеной проверкой целостности. А ошибиться пользователь может очень легко и ошибочно вбитый номер телефона или паспорта который оказался ключом может вылиться в ряд неприятностей. Поэтому если у вас на таблицу есть ссылки, то очень хорошо подумайте прежде чем делать в этой таблице естественный ключ.
vlad promzelev
18:32
еще есть snowflake ID.
Александр Кучук
14:42
Мысль про ключи естественные ок, но пример с номером телефона плох(опасен). Клиент может захотеть сменить номер телефона и вот тут придётся менять ваш PK, что выльется в проблемы и боль миграций.
Michael
08:04
Слишком много словесного мусора: повторений, рассуждений о пользе мыслительного процесса и т.д. Поэтому видео на 50 минут. Ну, вы же не Дудь!
Dilmurod
14:58
Просто для заметки:
Если x = «Иногда» и y = «Всегда» то
y = K * x, при условии К — частота случае «Иногда» и она стремиться к бесконечности )))))
Сергей Родин
10:53
05:57 а зачем использовать для этого именно композитный первичный ключ-то?
Первичный ключ — он для идентификации. Для избежания дублирования просто создаёшь индекс уникальности по нужным колонкам. Это то, что делает первичный ключ, кстати.
Ya Dev
19:33
А что случилось с терминалом, почему он криво показывает?
Pepil
17:21
Спасибо, много нового узнал.
Георгий Гаврилов
18:35
Случайно наткнулся на видео, не лишним было бы упомянуть про вставку батчем и генерацию айдишников на стороне бэка.
Vladimir Eliseev
14:18
Спасибо за видео!
У меня тоже была как проблема с инкрементом sequence, когда я прям на горячем проде с 150k rpc в секунду добавил строку вручную с явным указанием id.
И как посыпались ошибки! Ух… Хорошо быстро поправил sequence номер.