数据库连接及环境检查
切换用户至omm用户(gaussdb的所有者)
su - omm
gsql连接数据库,并检查当前会话连接信息:
gsql -r
\conninfo
当前非系统表索引信息
\d+
select * from pg_indexes where schemaname not like 'pg_%';
select * from pg_partition;

课后练习
1.创建范围分区表products, 为表创建分区表索引1,不指定索引分区的名称,创建分区表索引2,并指定索引分区的名称,创建GLOBAL分区索引3
create table products
(
product_id int,
product_name varCHAR(20),
product_type varchar(10)
)
partition by range (product_id)
(
partition part_table_p0 values less than (10),
partition part_table_p1 values less than (20),
partition part_table_p2 values less than (30),
partition part_table_p3 values less than (40),
partition part_table_p4 values less than (50)
);
--分区表索引1,不指定索引分区的名称(会以默认索引分区名自动创建索引分区)
CREATE INDEX IND_PARTTB_PRODUCTS ON products(product_id) LOCAL;
--分区表索引2,并指定索引分区的名称
CREATE INDEX IDX_PARTPA_PRODUCTS_ID ON
products(product_id)
(
PARTITION product_id_index1,
PARTITION product_id_index2,
PARTITION product_id_index3,
PARTITION product_id_index4,
PARTITION product_id_index5
);
--注:指定索引分区的名称时索引分区个数必须与分区表个数相同
--GLOBAL分区索引3
CREATE INDEX IND_GLOBAL_PRODUCTS ON PRODUCTS(product_type) GLOBAL;
--或者
CREATE INDEX IND_GLOBAL_PRODUCTS1 ON PRODUCTS(product_type);
--注意:global分区索引和local分区索引不能在同一列上
--检查:
\d+ products;
select schemaname,tablename,indexname,tablespace from pg_indexes where tablename = 'products';
select relname,reltablespace from pg_partition;


注:以上截图中标记出的5个索引分区为不指定索引分区的名称时自动命名的
2.在分区表索引1上,修改分区表索引的表空间,重命名分区表索引
--创建表空间
CREATE TABLESPACE tspc RELATIVE LOCATION 'tablespaces/tbs';
--修改分区表索引的表空间
ALTER INDEX IND_PARTTB_PRODUCTS MOVE PARTITION part_table_p0_product_id_idx TABLESPACE tspc;
--重命名分区表索引
ALTER INDEX IND_PARTTB_PRODUCTS RENAME PARTITION part_table_p2_product_id_idx TO part_table_p2_product_id_idx_new;
--检查
select relname,reltablespace from pg_partition;

3.在分区表索引2上,重建单个索引分区和分区上的所有索引
reindex index IDX_PARTPA_PRODUCTS_ID PARTITION product_id_index1;
reindex table products PARTITION part_table_p2;

4.使用\d+、系统视图pg_indexes和pg_partition查看索引信息
\d+
select schemaname,tablename,indexname,tablespace from pg_indexes where tablename = 'products';
select relname,reltablespace from pg_partition;

5.删除索引、表和表空间
drop index IDX_PARTPA_PRODUCTS_ID;
drop table products;
drop tablespace tspc;

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




