8.8Kпросмотров
80.6%от подписчиков
7 августа 2025 г.
📷 ФотоScore: 9.6K
UUID() и UUID_SHORT() — генерируем уникальный ID без сервера приложений 🎲 ❗Зачем знать 🔹Иногда нужно создать уникальный первичный ключ на стороне БД, а не приложения. 1️⃣ UUID() — стандартный 128-битный идентификатор SELECT UUID(); -- '550e8400-e29b-41d4-a716-446655440000' 🔹36 символов (32 шестн. + 4 дефисa). 🔹Практически нулевая вероятность коллизии. 🔹Минусы: длинная строка → индекс ~4× крупнее, хуже кэшируется. 2️⃣ UUID_SHORT() — компактный 64-битный вариант SELECT UUID_SHORT(); -- 281474976710661 🔹Возвращает BIGINT UNSIGNED (до 18 цифр). 🔹Формируется как: (server_id << 48) + (unix_ts << 24) + increment. 🔹Удобен для числовых PK 👉 индекс меньше, быстрее сортировка. 🔹Риск коллизии есть при одинаковом server_id (на реплике проверьте server_id!). 3️⃣ Практический пример: таблица заказов CREATE TABLE orders ( id CHAR(36) DEFAULT (UUID()) PRIMARY KEY, user_id INT, total DECIMAL(10,2) ); ✅ Итог 🔹UUID() — гарантированная уникальность, но тяжёлый индекс. 🔹UUID_SHORT() — компактный числовой ID, если контролируете server_id. 🔹Оба способа позволяют генерировать ключ прямо в MySQL без внешнего сервиса или кода приложения.
8.8K
просмотров
1166
символов
Нет
эмодзи
Да
медиа

Другие посты @sqlacademyofficial

Все посты канала →