我们正在尝试使用这些数字和查询要求来优化数据库的性能:
有了这些必要条件,我们就得出了这个解决方案(有一个很大的缺点,解释如下)。
[A] TABLE main_segments_history(
id_segment integer NOT NULL,
day date NOT NULL,
day_slices bigint[],
CONSTRAINT main_segments_history_pk PRIMARY KEY (id_segment,day)
)
[B] TABLE current_segment_release_state(
id_segment integer NOT NULL,
release_date timestamptz,
... all other attributes ...
CONSTRAINT currsegm_release_state_pk PRIMARY KEY (id_segment,release_date)
)
Run Code Online (Sandbox Code Playgroud)
解释[A]表:
pg_partman)进行分区。每个分区是一个月解释[B]表:
有一个后端进程详细说明了网络。
它每 3 分钟插入或更新每个段的状态。
换句话说,此过程将在一天开始时插入新行,并将每 3 分钟更新一次内部数组。
该解决方案的优点 …