今天(2021年12月31日),我在12.26号无意间在朋友圈看到了Gauss松鼠会发的海报,于是看这个教程。进行了学习及考试,由于这几天太忙,现在把做的作业文章补上,12.26号下午和晚上都在做这个作业,大概22:00终于完成了实验的每日章节练习,并完成了考试,推荐给了一个朋友一起学习,一起测试,在共同努力下,考取了100分的好成绩,总体感觉这个课程还是很不错的,初步渐入的学习openGauss数据库,并且在12.30号还有活动直播:openGauss与PostgreSQL核心技术解读及优势对比"
章节练习一共21天,下面是第10天的作业内容。

10、学习openGauss分区表索引
1.创建范围分区表products, 为表创建分区表索引1,不指定索引分区的名称,创建分区表索引2,并指定索引分区的名称,创建GLOBAL分区索引3
CREATE TABLESPACE example1 RELATIVE LOCATION 'tablespace1/tablespace_1';
CREATE TABLESPACE example2 RELATIVE LOCATION 'tablespace2/tablespace_2';
CREATE TABLESPACE example3 RELATIVE LOCATION 'tablespace3/tablespace_3';
CREATE TABLESPACE example4 RELATIVE LOCATION 'tablespace4/tablespace_4';
create schema tpcds;
CREATE TABLE tpcds.products
(
CA_ADDRESS_SK INTEGER NOT NULL,
CA_ADDRESS_ID CHAR(16) NOT NULL,
CA_STREET_NUMBER CHAR(10) ,
CA_STREET_NAME VARCHAR(60) ,
CA_STREET_TYPE CHAR(15) ,
CA_SUITE_NUMBER CHAR(10) ,
CA_CITY VARCHAR(60) ,
CA_COUNTY VARCHAR(30) ,
CA_STATE CHAR(2) ,
CA_ZIP CHAR(10) ,
CA_COUNTRY VARCHAR(20) ,
CA_GMT_OFFSET DECIMAL(5,2) ,
CA_LOCATION_TYPE CHAR(20)
)
PARTITION BY RANGE(CA_ADDRESS_SK)
(
PARTITION p1 VALUES LESS THAN (3000),
PARTITION p2 VALUES LESS THAN (5000) TABLESPACE example1,
PARTITION p3 VALUES LESS THAN (MAXVALUE) TABLESPACE example2
);
CREATE INDEX tpcds.products_index1 ON tpcds.products(CA_ADDRESS_SK) LOCAL;
CREATE INDEX tpcds.products_index2 ON
tpcds.products(CA_ADDRESS_SK) LOCAL
(
PARTITION CA_ADDRESS_SK_index1,
PARTITION CA_ADDRESS_SK_index2 TABLESPACE example3,
PARTITION CA_ADDRESS_SK_index3 TABLESPACE example4
);
CREATE INDEX tpcds.products_index3 ON tpcds.products(CA_ADDRESS_ID) GLOBAL;
=========================
2.在分区表索引1上,修改分区表索引的表空间,重命名分区表索引
//通过下面命令查看表分区,因为索引1是自动创建,名字不明;
\d+ tpcds.products;
ALTER INDEX tpcds.products_index1 MOVE PARTITION p1_ca_address_sk_idx TABLESPACE example1;
ALTER INDEX tpcds.products_index1 RENAME PARTITION p1_ca_address_sk_idx TO p4_ca_address_sk_idx;
=========================
3.在分区表索引2上,重建单个索引分区和分区上的所有索引
reindex index tpcds.products_index2 PARTITION ca_address_sk_index1;
reindex table tpcds.products PARTITION p1;
=========================
4.使用\d+、系统视图pg_indexes和pg_partition查看索引信息
\d+ tpcds.products;
select * from pg_indexes where tablename = 'products';
select * from pg_partition;
=========================
5.删除索引、表和表空间
DROP INDEX tpcds.products_index1;
DROP I
=========================




