Я настраиваю хеш-таблицу в PostgreSQL 12, которая будет иметь 256 разделов. Я использую uuid в качестве основного ключа для таблицы. Допустимо ли использовать тот же столбец uuid в качестве хеш-ключа?
uuid в качестве первичного ключа и ключа раздела для хеш-секционирования
Ответы (1)
Не только приемлемо, но и необходимо.
Согласно документации, 11.6. Уникальные индексы
"PostgreSQL автоматически создает уникальный индекс, когда для таблицы определяется ограничение уникальности или первичный ключ. Индекс охватывает столбцы, составляющие первичный ключ или ограничение уникальности (многоколоночный индекс, если необходимо), и является механизмом, обеспечивающим выполнение ограничение ".
Также согласно документации, 5.11.2.3. Ограничения,
К секционированным таблицам применяются следующие ограничения:
«Уникальные ограничения для многораздельных таблиц должны включать все столбцы ключей раздела. Это ограничение существует, потому что PostgreSQL может обеспечить уникальность только для каждого раздела отдельно».
person
cse
schedule
15.04.2020