云数据库 GAUSSDB-CLUSTER:示例

时间:2024-11-13 14:45:27

示例

  • 对表进行聚簇排序:
     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
    --建表并向表中插入数据。
    gaussdb=# CREATE TABLE test_c1(id int, name varchar(20));
    gaussdb=# CREATE INDEX idx_test_c1_id ON test_c1(id);
    gaussdb=# INSERT INTO test_c1 VALUES (3,'Joe'),(1,'Jack'),(2,'Scott');
    
    --查看。
    gaussdb=# SELECT * FROM test_c1;
     id | name  
    ----+-------
      3 | Joe
      1 | Jack
      2 | Scott
    (3 rows)
    
    --聚簇排序。
    gaussdb=# CLUSTER test_c1 USING idx_test_c1_id;
    
    --查看。
    gaussdb=# SELECT * FROM test_c1;
     id | name  
    ----+-------
      1 | Jack
      2 | Scott
      3 | Joe
    (3 rows)
    
    --删除。
    gaussdb=# DROP TABLE test_c1;
    
  • 对已做过聚簇的表重新进行聚簇排序:
    --建表。
    gaussdb=# CREATE TABLE test(col1 int,CONSTRAINT pk_test PRIMARY KEY (col1));
    
    --第一次聚簇排序不带USING关键字报错。
    gaussdb=# CLUSTER test;
    ERROR:  there is no previously clustered index for table "test"
    
    --聚簇排序。
    gaussdb=# CLUSTER test USING pk_test;
    
    --插入数据。
    gaussdb=# INSERT INTO test VALUES (1),(99),(10),(8);
    
    --对已做过聚簇的表重新进行聚簇。
    gaussdb=# CLUSTER VERBOSE test;
    INFO:  clustering "public.test" using index scan on "pk_test"(dn_6001 pid=3672)
    INFO:  "test": found 0 removable, 4 nonremovable row versions in 1 pages(dn_6001 pid=3672)
    DETAIL:  0 dead row versions cannot be removed yet.
    CPU 0.00s/0.00u sec elapsed 0.01 sec.
    CLUSTER
    
    --删除。
    gaussdb=# DROP TABLE test;
  • 对分区进行聚簇排序:
    --建表并向表中插入数据。
    gaussdb=# CREATE TABLE test_c2(id int, info varchar(4)) PARTITION BY RANGE (id)(
        PARTITION p1 VALUES LESS THAN (11),
        PARTITION p2 VALUES LESS THAN (21)
    );
    gaussdb=# CREATE INDEX idx_test_c2_id1 ON test_c2(id);
    gaussdb=# INSERT INTO test_c2 VALUES (6,'ABBB'),(2,'ABAB'),(9,'AAAA');
    gaussdb=# INSERT INTO test_c2 VALUES (11,'AAAB'),(19,'BBBA'),(16,'BABA');
    
    --查看。
    gaussdb=# SELECT * FROM test_c2;
     id | info 
    ----+------
      6 | ABBB
      2 | ABAB
      9 | AAAA
     11 | AAAB
     19 | BBBA
     16 | BABA
    (6 rows)
    
    --对分区p2进行聚簇排序。
    gaussdb=# CLUSTER test_c2 PARTITION (p2) USING idx_test_c2_id1;
    
    --查看。
    gaussdb=# SELECT * FROM test_c2;
     id | info 
    ----+------
      6 | ABBB
      2 | ABAB
      9 | AAAA
     11 | AAAB
     16 | BABA
     19 | BBBA
    (6 rows)
    
    --删除。
    gaussdb=# DROP TABLE test_c2;
support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-0530.html