云数据库 GAUSSDB-VACUUM:示例

时间:2024-11-28 01:45:00

示例

  • VACUUM
     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
    --创建表tbl_test,并插入数据。
    gaussdb=# CREATE TABLE tbl_test(c1 int); 
    gaussdb=# INSERT INTO tbl_test VALUES (1); 
    
    --查看数据,和数据的ctid。
    gaussdb=# SELECT ctid,* FROM tbl_test;
     ctid  | c1 
    -------+----
     (0,1) |  1
    (1 row)
    
    --删除该数据。
    gaussdb=# DELETE FROM tbl_test;
    
    --重新插入一条数据,发现使用了一个新的ctid。
    gaussdb=# INSERT INTO tbl_test VALUES (2);
    gaussdb=# SELECT ctid,* FROM tbl_test;
     ctid  | c1 
    -------+----
     (0,2) |  2
    (1 row)
    
    --使用VACUUM命令之后,在插入数据,发现复用了旧的空间。
    gaussdb=# VACUUM ANALYZE tbl_test;
    gaussdb=# INSERT INTO tbl_test VALUES (3);
    gaussdb=# SELECT ctid,* FROM tbl_test;
     ctid  | c1 
    -------+----
     (0,1) |  3
     (0,2) |  2
    (2 rows)
    
    --删除表。
    gaussdb=# DROP TABLE tbl_test;
    
  • VACUUM FULL
    --建表。
    gaussdb=# CREATE TABLE tbl_test2(c1 int);
    
    --插入10万条数据并查看表的大小。
    gaussdb=# INSERT INTO tbl_test2 VALUES (generate_series(1,100000));
    gaussdb=# SELECT 'tbl_test2' AS tablename, pg_size_pretty(pg_relation_size('tbl_test2')) AS size;
     tablename |  size   
    -----------+---------
     tbl_test2 | 3048 kB
    (1 row)
    
    --删除数据并查看表大小。
    gaussdb=# DELETE FROM tbl_test2;
    gaussdb=# SELECT 'tbl_test2' AS tablename, pg_size_pretty(pg_relation_size('tbl_test2')) AS size;
     tablename |  size   
    -----------+---------
     tbl_test2 | 3048 kB
    (1 row)
    
    --使用VACUUM FULL回收空间,并查看表的大小。
    gaussdb=# VACUUM FULL ANALYZE tbl_test2;
    gaussdb=# SELECT 'tbl_test2' AS tablename, pg_size_pretty(pg_relation_size('tbl_test2')) AS size;
     tablename |  size   
    -----------+---------
     tbl_test2 | 0 bytes
    (1 row)
    
    --使用在线VACUUM FULL回收空间。
    gaussdb=# VACUUM FULL ANALYZE tbl_test2 ONLINE;
    
    --删除。
    gaussdb=# DROP TABLE tbl_test2;
support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0698.html