学习心得
因为接触过其他的数据库,所以这节课的内容基本都会,但是竟然有命令可以重建表上的所有的索引,虽然这个功能看起来很炫,但是感觉在生产环境估计并不会有多少用武之地
课后作业
1.创建表,在表中创建索引
omm=# create table test(id int,name varchar(10));
CREATE TABLE
omm=# create index idx_test_id on test(id);
CREATE INDEX
omm=# \di
List of relations
Schema | Name | Type | Owner | Table | Storage
--------+-------------+-------+-------+-------+---------
public | idx_test_id | index | omm | test |
(1 row)
omm=#
2.通过hint使用索引
omm=# insert into test values (1, 'xiaoming');
INSERT 0 1
omm=# insert into test values (2, 'xiaohong');
INSERT 0 1
omm=# insert into test values (3, 'xiaofang');
INSERT 0 1
omm=# insert into test values (4, 'xiaogang');
INSERT 0 1
omm=# explain select /*+ indexscan(test idx_test_id ) */ * from test where id=1;
(3 rows)
omm=# QUERY PLAN
--------------------------------------------------------------------------
[Bypass]
Index Scan using idx_test_id on test (cost=0.00..24.36 rows=6 width=42)
Index Cond: (id = 1)
3.rename索引
omm=# alter index idx_test_id rename to idx_test_id_new;
ALTER INDEX
omm=# \di
List of relations
Schema | Name | Type | Owner | Table | Storage
--------+-----------------+-------+-------+----------+---------
public | idx_test_id_new | index | omm | test |
4.重建索引
omm=# alter index idx_test_id_new rebuild online;
ERROR: syntax error at or near "online"
LINE 1: alter index idx_test_id_new rebuild online;
^
omm=# alter index idx_test_id_new rebuild;
REINDEX
omm=# reindex index idx_test_id_new;
REINDEX
omm=# reindex table test;
REINDEX
5.移动索引到其他表空间
omm=# create tablespace myindex_ts relative location 'tablespace/myindex_ts1';
CREATE TABLESPACE
omm=#
omm=# alter index idx_test_id_new set tablespace myindex_ts;
omm=# ALTER INDEX
omm=# select * from pg_indexes where tablename = 'test';
schemaname | tablename | indexname | tablespace | indexdef
------------+-----------+-----------------+------------+-----------------------------------------------------------------------------
public | test | idx_test_id_new | myindex_ts | CREATE INDEX idx_test_id_new ON test USING btree (id) TABLESPACE myindex_ts
(1 row)
6.删除索引
omm=# drop index idx_test_id_new;
DROP INDEX
最后修改时间:2022-12-10 20:20:19
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




