云数据库 GAUSSDB-REINDEX:示例

时间:2024-11-02 18:49:51

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
--创建表tbl_test,并插入数据。
gaussdb=# CREATE TABLE tbl_test(c1 int,c2 varchar);
gaussdb=# INSERT INTO tbl_test VALUES (1, 'AAAAAAA'),(5, 'AAAAAAB'),(10, 'AAAAAAC');

--创建索引,并查看索引大小。
gaussdb=# CREATE INDEX idx_test_c1 ON tbl_test(c1);
gaussdb=# SELECT pg_size_pretty(pg_total_relation_size('idx_test_c1')) AS size;
 size  
-------
 64 kB
(1 row)

--插入一万条数据,然后删除数据,发现索引变大。
gaussdb=# INSERT INTO tbl_test VALUES (generate_series(1,10000),'test');
gaussdb=# DELETE FROM tbl_test WHERE c2 = 'test';
gaussdb=# SELECT pg_size_pretty(pg_total_relation_size('idx_test_c1')) AS size;
  size  
--------
 376 kB
(1 row)

--重建一个单独索引之后,查看索引信息索引大小变回初始大小。
gaussdb=# REINDEX INDEX idx_test_c1;
gaussdb=# SELECT pg_size_pretty(pg_total_relation_size('idx_test_c1')) AS size;
 size  
-------
 64 kB
(1 row)

--在线重建一个单独索引。
gaussdb=# REINDEX INDEX CONCURRENTLY idx_test_c1;

--重建表tbl_test上的所有索引。
gaussdb=# REINDEX TABLE tbl_test;

--在线重建表tbl_test上的所有索引。
gaussdb=# REINDEX TABLE CONCURRENTLY tbl_test;

--删除tbl_test表。
gaussdb=# DROP TABLE tbl_test;
support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-0682.html