UUIDv4 убивает индекс в Postgres — почему и как спасает UUIDv7
UUIDv4 в роли первичного ключа незаметно ломает B-tree индекс в PostgreSQL: случайные значения разбрасываются по всему дереву, вставки замедляются, а индекс раздувается. Разбираем, почему так и как UUIDv7 это чинит одной строкой. Если ты выбираешь между UUID и bigserial для первичного ключа — это видео сэкономит тебе часы дебага медленных вставок и распухшего индекса. Что внутри: — как устроен B-tree индекс и почему bigserial ложится в него идеально — как именно UUIDv4 фрагментирует страницы индекса (page split) — бенчмарк: время вставки и размер индекса UUIDv4 vs bigserial на 10M строк — чем UUIDv7 отличается от UUIDv4 (упорядоченность по времени) — как включить UUIDv7 в Postgres Главы: 0:00 UUID ломает индекс — в чём проблема 0:17 Что такое B-tree индекс 0:27 Почему bigserial идеален для индекса 0:47 Как UUIDv4 фрагментирует индекс 1:09 Цена случайности: бенчмарк вставок и размера 1:30 Решение — UUIDv7 1:40 Анатомия UUIDv7 1:51 UUIDv7 ≈ bigserial по скорости 2:02 Как включить UUIDv7 в PostgreSQL 2:19 Итог SQL и PostgreSQL для разработчиков → sql-academy.org #postgresql #uuid #базыданных
Название:
UUIDv4 убивает индекс в Postgres — почему и как спасает UUIDv7
Категория:
Разное