暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss每日一练第10天|课后练习-分区表索引

原创 驿路辰风 2021-12-14
320

数据库连接及环境检查

切换用户至omm用户(gaussdb的所有者)

su - omm

gsql连接数据库,并检查当前会话连接信息:

gsql -r
\conninfo

当前非系统表索引信息

\d+ select * from pg_indexes where schemaname not like 'pg_%'; select * from pg_partition;

图片.png

课后练习

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;

图片.png
图片.png
注:以上截图中标记出的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;

图片.png

3.在分区表索引2上,重建单个索引分区和分区上的所有索引

reindex index IDX_PARTPA_PRODUCTS_ID PARTITION product_id_index1; reindex table products PARTITION part_table_p2;

图片.png

4.使用\d+、系统视图pg_indexes和pg_partition查看索引信息

\d+ select schemaname,tablename,indexname,tablespace from pg_indexes where tablename = 'products'; select relname,reltablespace from pg_partition;

图片.png

5.删除索引、表和表空间

drop index IDX_PARTPA_PRODUCTS_ID; drop table products; drop tablespace tspc;

图片.png

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

评论