PostgreSQL中按时间月份自动创建分区表
前言
1. 创建主表
2. 创建存储过程
3. 创建触发器
4. 踩过的坑
(1)constraint_exclusion属性设置
(2)linux如何执行postgresql的sql脚本
方法一:首先通过psql连接到对应的db:
方法二:直接通过psql命令执行SQL文件
(3)如何查询表分区
前言
工作中遇到千万级单表数据查询优化,博主第一时间想到表分区,特此记录问题的解决过程,避免大家采坑。
数据库表分区把一个大的物理表分成若干个小的物理表,并使得这些小物理表在逻辑上可以被当成一张表来使用。
PostgreSQL数据库中对表做分区,与11g之前的Oracle类似,需要手动创建分区表、索引等。通过继承,比如按时间,每月创建一个表分区,数据记录到对应分区中。
1. 创建主表
创建主表结构, 表名称 three_height_data_value, 其中的时间字段名: gather_time
CREATE TABLE "public"."three_height_data_value" (
"data_id" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
"data_time" timestamp(6) NOT NULL,
"data_value" float8 NOT NULL
);
2. 创建存储过程
创