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

Sdílet
Vložit
  • čas přidán 6. 09. 2024
  • Профессиональная конференция для PHP-разработчиков
    Презентация и тезисы:
    phprussia.ru/m...
    Почти восемь лет, занимаясь разработкой веб-приложений, я использовал для идентификации исключительно автоинкременты. И только 3,5 года назад я попробовал UUID в одном пет-проекте. С тех пор я и моя команда в Happy Inc. почти всегда выбираем UUID для идентификации чего бы то ни было.
    ...
    --------
    Нашли ошибку в видео? Пишите нам на support@ontico.ru

Komentáře • 9

  • @SuperDuckKh
    @SuperDuckKh Před měsícem

    Я всегда находил (для лично себя) важным профит в переходе с инкрементов в том что мало типизированные методы к примеру у доменов или контроллеров, которые получают скалярные аргументы-идентификаторы часто подвержены уязвимости (чисто хюман фактор) когда девелопер перепутал аргументы, и если у тебя инкременты, то оба иденитифкатора с большой вероятностью валидные (12 продакт и 132 юзер в обратном порядке тоже скорее всего существуют). А вот ЮИД практически гарантировано приведет к исключению. При том я нарывался даже на ситуацию когда в юниттесте покрывающем данную функциональность была та же ошибка. Я к тому что повторять юиды это имхо плохая практика хотя и заманчивая местами, дополнительное уникальное поле работает не хуже.

  • @anatoly-k
    @anatoly-k Před 2 měsíci

    Супер

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 Před 3 měsíci

    UUID - Повсеместно однозначный определитель

  • @aleksey2793
    @aleksey2793 Před měsícem

    Почему говорится о сортируемости uuid7 и несортируемости uui4? В чем разница? И там, и там строка. Оба варианта сортируемы. Разве нет?

    • @traffaret
      @traffaret Před měsícem +1

      Если формально подходить, то, действительно, v4 сортируется как и любая другая строка. Если подходить практически, то v4 это рандомно сгенерированное значение - соответственно результаты отсортированной выборки по данному значению будут рандомные. Как в примерах на слайдах было указано 12:41 и 12:45, то сортировка v7 и автоинкремента дают нам результат в той последовательности, в которой значения добавлялись в БД, а результаты сортировки по v4 могут дать выборку с результатами сохранёнными как несколько лет назад, так и на текущий момент времени, например. Хранение в индексе так же отсортирует значения v4 рандомно и если, например, в select in добавить идентификаторы v7 добавленные за короткий промежуток времени, то индекс отработает быстрее, т.к. значения находятся рядом, в случае v4 рандомная строка может отсортироваться в индексе в довольно "удалённых" друг от друга местах - это актуально как для поиска, так и для вставки. Выхлоп от v4 только в уникальности, что дают все версии uuid, но в случае с v7 и практическая польза с сортировкой.

    • @aleksey2793
      @aleksey2793 Před měsícem

      @@traffaret супер, спасибо!

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 Před 3 měsíci

    Unique [juːˈniːk] неповторимый, однозначный

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 Před 3 měsíci

    Identifier [aɪˈdentɪfaɪə] определитель, обозначение

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 Před 3 měsíci

    Universally [juːnɪˈvɜːsəlɪ] повсюду, повсеместно