Независимые шарды PostgreSQL не получают глобальную уникальность от локального PRIMARY KEY. Нужны согласованная генерация ID или маршрутизация по уникальному ключу.
Как обеспечить глобальную уникальность primary key в PostgreSQL при шардировании?
Независимые шарды PostgreSQL не получают глобальную уникальность от локального PRIMARY KEY. Нужны согласованная генерация ID или маршрутизация по уникальному ключу.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Независимые шарды PostgreSQL не получают глобальную уникальность от локального PRIMARY KEY. Нужны согласованная генерация ID или маршрутизация по уникальному ключу.
Варианты — выделение непересекающихся диапазонов, составной ключ (shard_id, local_id) или распределённый генератор идентификаторов. UUID уменьшает вероятность коллизии, но не заменяет строгий глобальный контроль уникальности бизнес-ключа.
Если одинаковое уникальное значение всегда попадает на один шард, проверку можно выполнить там. В остальных случаях потребуется координатор или отдельный реестр с атомарной проверкой. Уточните, речь об уникальности технического ID или, например, email: это разные задачи.