Случайные UUID и индекс
Вопрос
Первичный ключ таблицы событий сделали uuid со значениями UUID v4. Вставок миллионы в сутки. Какая проблема вероятнее всего проявится?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Варианты ответа
- UUID v4 часто совпадают, будут ошибки уникальности
- По uuid нельзя построить B-tree индекс, только hash
- Вставки в случайные места B-tree, индекс раздуваетсяправильный ответ
- UUID занимает 36 байт, как строка, индекс огромный
Разбор
Значения v4 случайны, поэтому каждая вставка идёт в произвольный лист индекса: рабочий набор страниц не помещается в кеш, страницы делятся, индекс фрагментирован. Последовательный bigint или упорядоченный по времени UUID v7 вставляются в «правый край» дерева. Коллизии v4 на практике исключены (122 случайных бита). B-tree по uuid строится обычным образом. Тип uuid занимает 16 байт, 36 это длина текстового представления.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Уникальность только в коде
Следующий вопрос
Новая колонка с DEFAULT на большой таблице
Термины по теме
Ещё по теме «Проектирование и нормализация»
- Нарушение второй нормальной формы
- Транзитивная зависимость
- Денормализация
- Нормализация
- Суррогатный ключ
- Связь многие ко многим
- Тип для денег
- ON DELETE CASCADE