数据库分区例子
来源:互联网 发布:environ linux 编辑:程序博客网 时间:2024/06/05 03:41
--创建表
CREATE TABLE "public"."ds_product_imagery" (
"id" float8 DEFAULT 0 NOT NULL,
"productname" varchar(100) COLLATE "default" NOT NULL,
"fgeometry" "public"."geometry" NOT NULL,
"browserimg" varchar(200) COLLATE "default",
"thumbimg" varchar(200) COLLATE "default",
"centertime" timestamp(6) NOT NULL,
"centerlatitude" float8,
"centerlongitude" float8,
"satellite" varchar(50) COLLATE "default" NOT NULL,
"sensor" varchar(50) COLLATE "default" NOT NULL,
"cloudcover" float8 DEFAULT 0,
"rollangle" float8 DEFAULT 0,
"topleftlatitude" float8,
"topleftlongitude" float8,
"toprightlatitude" float8,
"toprightlongitude" float8,
"bottomrightlatitude" float8,
"bottomrightlongitude" float8,
"bottomleftlatitude" float8,
"bottomleftlongitude" float8,
"fbounds" "public"."geometry" NOT NULL,
"cloudgeometry" "public"."geometry",
"addtime" timestamp(6),
"resolution" varchar(50) COLLATE "default",
"productlevels" varchar(50) COLLATE "default",
"transformimg" varchar(200) COLLATE "default",
"ditaskid" varchar(100) COLLATE "default",
"diversion" int4 DEFAULT 1 NOT NULL,
"nocloudgeometry" "public"."geometry",
"diindexsource" varchar(100) COLLATE "default",
CONSTRAINT "ds_product_imagery_pkey" PRIMARY KEY ("id")
)
--创建索引
CREATE INDEX "ds_product_imagery_cen_fboun_idx" ON "public"."ds_product_imagery" USING btree (centertime, satellite, cloudcover, rollangle, fbounds);
CREATE INDEX "ds_product_imagery_centertime_idx" ON "public"."ds_product_imagery" USING btree (centertime DESC);
CREATE INDEX "ds_product_imagery_fbounds_idx" ON "public"."ds_product_imagery" USING gist (fbounds);
CREATE INDEX "ds_product_imagery_fgeometry_idx" ON "public"."ds_product_imagery" USING btree (fgeometry);
CREATE INDEX "ds_product_imagery_id_idx" ON "public"."ds_product_imagery" USING btree (id);
CREATE INDEX "ds_product_imagery_satellite_sensor_idx" ON "public"."ds_product_imagery" USING btree (satellite DESC, sensor DESC);
--分区语句
select create_range_partitions('ds_product_imagery' ::regclass, -- 主表OID
'centertime', -- 分区列名
'2010-01-01 00:00:00' ::timestamp, -- 开始值
interval '1 month', -- 间隔;interval 类型,用于时间分区表
24, -- 分多少个区
false) ; -- 不迁移数据
--数据迁移完成后,建议禁用主表,这样执行计划就不会出现主表了
select set_enable_parent('ds_product_imagery'::regclass, false);
--分裂分区
select split_range_partition('ds_product_imagery_1'::regclass, -- 分区oid
'2016-11-10 00:00:00'::timestamp, -- 分裂值
'ds_product_imagery_1_2'); -- 分区表名
--增加分区1
select prepend_range_partition('ds_product_imagery'::regclass);
--增加分区2
select add_range_partition('ds_product_imagery'::regclass, -- 主表OID
'2020-01-01 00:00:00'::timestamp, -- 起始值
'2020-02-01 00:00:00'::timestamp); -- 结束值
--删除分区, 数据迁移到主表
select drop_range_partition('ds_product_imagery_3',false);
--删除分区,分区数据也删除,不迁移到主表
select drop_range_partition('ds_product_imagery_4',true);
--删除所有分区,并且指定是否要将数据迁移到主表
elect drop_partitions('ds_product_imagery'::regclass, false); -- 删除所有分区表,并将数据迁移到主表
explain select * from ds_product_imagery where centertime = '2016-10-25 00:00:00'::timestamp;
CREATE TABLE "public"."ds_product_imagery" (
"id" float8 DEFAULT 0 NOT NULL,
"productname" varchar(100) COLLATE "default" NOT NULL,
"fgeometry" "public"."geometry" NOT NULL,
"browserimg" varchar(200) COLLATE "default",
"thumbimg" varchar(200) COLLATE "default",
"centertime" timestamp(6) NOT NULL,
"centerlatitude" float8,
"centerlongitude" float8,
"satellite" varchar(50) COLLATE "default" NOT NULL,
"sensor" varchar(50) COLLATE "default" NOT NULL,
"cloudcover" float8 DEFAULT 0,
"rollangle" float8 DEFAULT 0,
"topleftlatitude" float8,
"topleftlongitude" float8,
"toprightlatitude" float8,
"toprightlongitude" float8,
"bottomrightlatitude" float8,
"bottomrightlongitude" float8,
"bottomleftlatitude" float8,
"bottomleftlongitude" float8,
"fbounds" "public"."geometry" NOT NULL,
"cloudgeometry" "public"."geometry",
"addtime" timestamp(6),
"resolution" varchar(50) COLLATE "default",
"productlevels" varchar(50) COLLATE "default",
"transformimg" varchar(200) COLLATE "default",
"ditaskid" varchar(100) COLLATE "default",
"diversion" int4 DEFAULT 1 NOT NULL,
"nocloudgeometry" "public"."geometry",
"diindexsource" varchar(100) COLLATE "default",
CONSTRAINT "ds_product_imagery_pkey" PRIMARY KEY ("id")
)
--创建索引
CREATE INDEX "ds_product_imagery_cen_fboun_idx" ON "public"."ds_product_imagery" USING btree (centertime, satellite, cloudcover, rollangle, fbounds);
CREATE INDEX "ds_product_imagery_centertime_idx" ON "public"."ds_product_imagery" USING btree (centertime DESC);
CREATE INDEX "ds_product_imagery_fbounds_idx" ON "public"."ds_product_imagery" USING gist (fbounds);
CREATE INDEX "ds_product_imagery_fgeometry_idx" ON "public"."ds_product_imagery" USING btree (fgeometry);
CREATE INDEX "ds_product_imagery_id_idx" ON "public"."ds_product_imagery" USING btree (id);
CREATE INDEX "ds_product_imagery_satellite_sensor_idx" ON "public"."ds_product_imagery" USING btree (satellite DESC, sensor DESC);
--分区语句
select create_range_partitions('ds_product_imagery' ::regclass, -- 主表OID
'centertime', -- 分区列名
'2010-01-01 00:00:00' ::timestamp, -- 开始值
interval '1 month', -- 间隔;interval 类型,用于时间分区表
24, -- 分多少个区
false) ; -- 不迁移数据
--数据迁移完成后,建议禁用主表,这样执行计划就不会出现主表了
select set_enable_parent('ds_product_imagery'::regclass, false);
--分裂分区
select split_range_partition('ds_product_imagery_1'::regclass, -- 分区oid
'2016-11-10 00:00:00'::timestamp, -- 分裂值
'ds_product_imagery_1_2'); -- 分区表名
--增加分区1
select prepend_range_partition('ds_product_imagery'::regclass);
--增加分区2
select add_range_partition('ds_product_imagery'::regclass, -- 主表OID
'2020-01-01 00:00:00'::timestamp, -- 起始值
'2020-02-01 00:00:00'::timestamp); -- 结束值
--删除分区, 数据迁移到主表
select drop_range_partition('ds_product_imagery_3',false);
--删除分区,分区数据也删除,不迁移到主表
select drop_range_partition('ds_product_imagery_4',true);
--删除所有分区,并且指定是否要将数据迁移到主表
elect drop_partitions('ds_product_imagery'::regclass, false); -- 删除所有分区表,并将数据迁移到主表
explain select * from ds_product_imagery where centertime = '2016-10-25 00:00:00'::timestamp;
阅读全文
0 0
- 数据库分区例子
- spring batch批处理分区读取数据库的例子
- 数据库分区
- 数据库分区
- 数据库分区
- 数据库分区
- 数据库分区
- 数据库分区
- 数据库分区
- 数据库分区
- 数据库分区
- 数据库分区
- 数据库分区
- 数据库分区
- 数据库分区
- 数据库分区
- 数据库分区
- linux分区例子
- UEditor常用API
- [U3D][Android]问题记录
- 手把手教你把Vim改装成一个IDE编程环境(图文)
- Java集合小结
- openGL对基本几何图形的定义
- 数据库分区例子
- i2c驱动--裸板程序i2c总线接AT24cxx
- UEditor上传配置&常见问题
- 微信公众号开发(三)获取access_token
- Spring 创建条件化的bean(满足一定条件才会实例化该bean)
- [U3D]问题记录
- 使用 GNU profiler 来提高代码运行速度
- 企业做网站该用什么程序呢?实用最实在
- SQL语句基础