ID-баттл: UUID vs автоинкремент / Валентин Удальцов

  Рет қаралды 2,390

PHP Channel

PHP Channel

Күн бұрын

Пікірлер: 10
@anatoly-k
@anatoly-k 5 ай бұрын
Супер
@daniyarislamgaliyev8627
@daniyarislamgaliyev8627 2 ай бұрын
А нельзя обеспечить коррелируемость в случае с autoincrement добавляя колонку в таблицах условно user(author)_id в разных сервисах для разных сущнестей ?
@SuperDuckKh
@SuperDuckKh 4 ай бұрын
Я всегда находил (для лично себя) важным профит в переходе с инкрементов в том что мало типизированные методы к примеру у доменов или контроллеров, которые получают скалярные аргументы-идентификаторы часто подвержены уязвимости (чисто хюман фактор) когда девелопер перепутал аргументы, и если у тебя инкременты, то оба иденитифкатора с большой вероятностью валидные (12 продакт и 132 юзер в обратном порядке тоже скорее всего существуют). А вот ЮИД практически гарантировано приведет к исключению. При том я нарывался даже на ситуацию когда в юниттесте покрывающем данную функциональность была та же ошибка. Я к тому что повторять юиды это имхо плохая практика хотя и заманчивая местами, дополнительное уникальное поле работает не хуже.
@konstantinchvilyov9602
@konstantinchvilyov9602 6 ай бұрын
UUID - Повсеместно однозначный определитель
@aleksey2793
@aleksey2793 5 ай бұрын
Почему говорится о сортируемости uuid7 и несортируемости uui4? В чем разница? И там, и там строка. Оба варианта сортируемы. Разве нет?
@traffaret
@traffaret 5 ай бұрын
Если формально подходить, то, действительно, v4 сортируется как и любая другая строка. Если подходить практически, то v4 это рандомно сгенерированное значение - соответственно результаты отсортированной выборки по данному значению будут рандомные. Как в примерах на слайдах было указано 12:41 и 12:45, то сортировка v7 и автоинкремента дают нам результат в той последовательности, в которой значения добавлялись в БД, а результаты сортировки по v4 могут дать выборку с результатами сохранёнными как несколько лет назад, так и на текущий момент времени, например. Хранение в индексе так же отсортирует значения v4 рандомно и если, например, в select in добавить идентификаторы v7 добавленные за короткий промежуток времени, то индекс отработает быстрее, т.к. значения находятся рядом, в случае v4 рандомная строка может отсортироваться в индексе в довольно "удалённых" друг от друга местах - это актуально как для поиска, так и для вставки. Выхлоп от v4 только в уникальности, что дают все версии uuid, но в случае с v7 и практическая польза с сортировкой.
@aleksey2793
@aleksey2793 5 ай бұрын
@@traffaret супер, спасибо!
@konstantinchvilyov9602
@konstantinchvilyov9602 6 ай бұрын
Unique [juːˈniːk] неповторимый, однозначный
@konstantinchvilyov9602
@konstantinchvilyov9602 6 ай бұрын
Identifier [aɪˈdentɪfaɪə] определитель, обозначение
@konstantinchvilyov9602
@konstantinchvilyov9602 6 ай бұрын
Universally [juːnɪˈvɜːsəlɪ] повсюду, повсеместно
IL'HAN - Qalqam | Official Music Video
03:17
Ilhan Ihsanov
Рет қаралды 700 М.