uuid в качестве первичного ключа и ключа раздела для хеш-секционирования

Я настраиваю хеш-таблицу в PostgreSQL 12, которая будет иметь 256 разделов. Я использую uuid в качестве основного ключа для таблицы. Допустимо ли использовать тот же столбец uuid в качестве хеш-ключа?


person david    schedule 29.03.2020    source источник


Ответы (1)


Не только приемлемо, но и необходимо.

Согласно документации, 11.6. Уникальные индексы

"PostgreSQL автоматически создает уникальный индекс, когда для таблицы определяется ограничение уникальности или первичный ключ. Индекс охватывает столбцы, составляющие первичный ключ или ограничение уникальности (многоколоночный индекс, если необходимо), и является механизмом, обеспечивающим выполнение ограничение ".

Также согласно документации, 5.11.2.3. Ограничения,

К секционированным таблицам применяются следующие ограничения:

«Уникальные ограничения для многораздельных таблиц должны включать все столбцы ключей раздела. Это ограничение существует, потому что PostgreSQL может обеспечить уникальность только для каждого раздела отдельно».

person cse    schedule 15.04.2020