У меня есть база данных 24/7 postgres, в которой я разделил некоторые из основных таблиц, чтобы обеспечить обслуживание, пока данные все еще загружаются. К сожалению, изменения в отдельных разделах по-прежнему влияют на родительскую таблицу.
Моя таблица определена примерно так -
CREATE TABLE tableA ( loadedTime TIMESTAMP, rawData CHARACTER(150))
PARTITION BY RANGE (loadedTime)
И отдельные перегородки -
CREATE TABLE tableA_yyyymmdd PARTITION OF tableA FOR VALUES FROM () TO ()
Где диапазоны равны отдельным дням.
У меня есть процесс, который 24/7 вставляет записи в родительскую таблицу tableA (не определенный раздел), loadedTime всегда ссылается на текущее время, поэтому данные всегда загружен в сегодняшний раздел.
Почему изменение табличного пространства некоторых старых разделов приводит к превышению времени ожидания вставок в текущий раздел? Насколько я понимаю, разделы почти как отдельные таблицы, и я должен иметь возможность работать с разделами, не вызывая проблем с родительской таблицей - или я неправильно понял?
ОБНОВЛЕНИЕ - в настоящее время используется postgres 10.5. У меня есть похожая проблема, если я пытаюсь DETACH, VACUUM и ATTACH старый раздел из родительской таблицы. Я могу получить доступ к родителю после отсоединения раздела, но DETACH и ATTACH требуют времени и ВСТАВЛЯЮТ на тайм-ауте родителя во время шагов отсоединения / присоединения.