#postgresql #partitioning
#postgresql #разбиение
Вопрос:
У меня есть таблица, разделенная по диапазону в Postgres 10.6. Есть ли способ указать одному из его разделов принять NULL для столбца, используемого в качестве ключа раздела?
Причина, по которой мне это нужно: размер моей таблицы составляет 200 ГБ, и на самом деле она еще не разделена. Я хочу разделить его в будущем, поэтому я подумал, что создам начальный раздел, включающий все текущие строки, а затем в начале каждого месяца я бы создавал другой раздел для данных за этот месяц.
Проблема в том, что в настоящее время в этой таблице нет столбца, который я буду использовать для разбиения, поэтому я хочу добавить столбец (изначально null
), а затем указать этому исходному разделу, чтобы он содержал все строки, которые имеют null
в ключе разбиения.
Другим вариантом было бы не добавлять столбец как null
, а установить начальное значение даты, но это потребовало бы много времени и места из-за размера этой таблицы.
Комментарии:
1. Спасибо @a_horse_with_no_name, я видел это для разделения списка, но я не видел ничего такого явного для разделов диапазона.
Ответ №1:
Я бы обновился до версии 11 и изначально определил разделенную таблицу только с разделом по умолчанию, который содержит все значения NULL.
Затем вы можете добавить другие разделы и постепенно перемещать данные, обновляя значения NULL.