ID-баттл: UUID vs автоинкремент

PHP Russia: Лучшие практики

PHP, Хранение и импорт

PHP
Базы данных / другое
Архитектурные паттерны
Алгоритмы и их сравнение

Доклад принят в программу конференции

Мнение Программного комитета о докладе

Одна из вечных тем, разобрать которую нормально никогда не хватает времени. Как гененрировать ID и зачем, вообще, UUID? Что быстрее? Какие есть подводные камни? Обо всём этом — в докладе.

Целевая аудитория

PHP-разработчики, которые вообще не используют UUID, или думают, что UUID v4 — это единственный значимый тип UUID.

Тезисы

Почти восемь лет, занимаясь разработкой веб-приложений, я использовал для идентификации исключительно автоинкременты. И только 3,5 года назад я попробовал UUID в одном пет-проекте. С тех пор я и моя команда в Happy Inc. почти всегда выбираем UUID для идентификации чего бы то ни было. Мы научились коррелировать сущности разных модулей по идентификатору, пользоваться преимуществами разных типов UUID, одними из первых внедрили UUID v6. Автоинкременты мы тоже не списывали со счетов, они по-прежнему хороши в определённых случаях.

В рамках этого доклада я обобщу опыт моей команды и разложу по полочкам все “за” и “против” использования UUID и автоинкрементов в PHP-приложении. Мы обсудим актуальные способы генерации и хранения идентификаторов, изучим бенчмарки для разных сценариев и баз данных и подведём новую черту с пометкой "2022" под этим старым добрым холиваром.

Активный участник сообщества PHP. Автор популярных каналов Пых (https://t.me/phpyh) и PHP Point (https://www.youtube.com/c/PHPPoint). Контрибьютор различных библиотек экосистемы PHP (https://github.com/vudaltsov).

Happy Inc.

Компания Happy Inc. предлагает портфель платформенных b2b-решений для управления обратной связью с сотрудниками и клиентами.

Видео