全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件

如何使用表分区?

更新时间:2017-12-12 10:01:19

对于数据库中的事实表以及一些比较大的表,建议您使用表分区。使用表分区功能,方便您定期进行数据删除(通过 alter table drop patition 命令可删除整个分区的数据)和导入(使用交换分区的方式,即 alter table exchange patition 命令可以加入新数据分区)。

HybridDB for PostgreSQL 支持 Range Partition(范围分区)、List Partition(列表分区)和 Composite Partition(多级分区)。但是,Range Partition 只支持利用数值或时间类型的字段来分区。

以下是一个使用 Range Partition 的表的例子。

  1. CREATE TABLE LINEITEM (
  2. L_ORDERKEY BIGINT NOT NULL,
  3. L_PARTKEY BIGINT NOT NULL,
  4. L_SUPPKEY BIGINT NOT NULL,
  5. L_LINENUMBER INTEGER,
  6. L_QUANTITY FLOAT8,
  7. L_EXTENDEDPRICE FLOAT8,
  8. L_DISCOUNT FLOAT8,
  9. L_TAX FLOAT8,
  10. L_RETURNFLAG CHAR(1),
  11. L_LINESTATUS CHAR(1),
  12. L_SHIPDATE DATE,
  13. L_COMMITDATE DATE,
  14. L_RECEIPTDATE DATE,
  15. L_SHIPINSTRUCT CHAR(25),
  16. L_SHIPMODE CHAR(10),
  17. L_COMMENT VARCHAR(44)
  18. ) WITH (APPENDONLY=true, ORIENTATION=column, COMPRESSTYPE=zlib, COMPRESSLEVEL=5, BLOCKSIZE=1048576, OIDS=false) DISTRIBUTED BY (l_orderkey)
  19. PARTITION BY RANGE (L_SHIPDATE) (START (date '1992-01-01') INCLUSIVE END (date '2000-01-01') EXCLUSIVE EVERY (INTERVAL '1 month' ));
本文导读目录