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

openGauss每日一练第 17 天 | openGauss逻辑结构:索引管理

原创 杨凯同学 2022-12-10
324

课程作业

1.创建表,在表中创建索引

root@modb:~# su - omm
omm@modb:~$ gsql -r
gsql ((openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:00 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
--创建表
omm=# create table yangkai(
omm(# id int,
omm(# name varchar(20) not null,
omm(# age int default 20
omm(# );
CREATE TABLE
--在表中创建索引                      ^
omm=# create index inx_name on yangkai(name);
CREATE INDEX
--查看索引
omm=# \di
               List of relations
Schema |   Name   | Type  | Owner |  Table  | Storage 
--------+----------+-------+-------+---------+---------
public | inx_name | index | omm   | yangkai | 
(1 row)

2.通过hint使用索引

--插入数据
omm=# insert into yangkai values (1,'yangkai1');
INSERT 0 1
omm=# insert into yangkai values (2,'zhangsan',33);
INSERT 0 1
omm=# insert into yangkai values (3,'lisi');
INSERT 0 1

image.png

image.png

--通过hint强制使用索引
omm=#  EXPLAIN SELECT /*+ indexscan(yangkai inx_name) */ name from yangkai
omm-# where name='zhangsan';
WARNING:  unused hint: IndexScan(yangkai inx_name)
                          QUERY PLAN                               
-----------------------------------------------------------------------
(4 rows)

 Bitmap Heap Scan on yangkai  (cost=4.28..12.74 rows=4 width=58)
  Recheck Cond: ((name)::text = 'zhangsan'::text)
  ->  Bitmap Index Scan on inx_name  (cost=0.00..4.28 rows=4 width=0)
     Index Cond: ((name)::text = 'zhangsan'::text)

3.rename索引

image.png

omm=# alter index inx_name RENAME TO idx_yangkai_name;
ALTER INDEX
omm=# \di
                   List of relations
Schema |       Name       | Type  | Owner |  Table  | Storage 
--------+------------------+-------+-------+---------+---------
public | idx_yangkai_name | index | omm   | yangkai | 
(1 row)

4.重建索引

--第一种方式
omm=# alter index idx_yangkai_name rebuild;
REINDEX
omm=# \di
                   List of relations
Schema |       Name       | Type  | Owner |  Table  | Storage 
--------+------------------+-------+-------+---------+---------
public | idx_yangkai_name | index | omm   | yangkai | 
(1 row)
--第二种方式
omm=# reindex index idx_yangkai_name;
REINDEX
--第三种方式
omm=# reindex table yangkai;
REINDEX

5.移动索引到其他表空间

--创建表空间yangkai_ts
omm=# CREATE TABLESPACE yangkai_ts RELATIVE LOCATION 'tablespace/yangkai_ts1';
CREATE TABLESPACE
--移动索引到yangkai_ts表空间
omm=# alter index idx_yangkai_name set tablespace yangkai_ts;
ALTER INDEX
--查看索引对应的表空间
omm=# select * from pg_indexes where tablename = 'yangkai';
schemaname | tablename |    indexname     | tablespace |                       
          indexdef                                      
------------+-----------+------------------+------------+-----------------------
------------------------------------------------------------
 public     | yangkai   | idx_yangkai_name | yangkai_ts | CREATE INDEX idx_yangk
ai_name ON yangkai USING btree (name) TABLESPACE yangkai_ts
(1 row)

或者

image.png

6.删除索引

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

评论