云数据库 GaussDB-VACUUM:示例

时间:2025-01-26 10:43:42

示例

  • VACUUM
     1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334
    --创建表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/centralized-devg-v8-gaussdb/gaussdb-42-0700.html