Postgresql对表进行分区

 时间:2024-10-12 02:45:27

1、用PSQL链接数据库,创建测试表,插入测试数据。- 表名:schema_a.log衡痕贤伎s模拟日志表- 列: id -- 唯一标识- 列: l髫潋啜缅evel -- 日志级别- 列: content -- 日志内容- 列: created -- 日志创建时间代码: create table schema_a.logs(id bigint, level char(1), content varchar, created date);

Postgresql对表进行分区

2、在Postgresql里表分区由表继承来实现的,就是一个空的主表, 然后创建分区来妤伊佛集继承主表。我们由created字段来进行分区,2016年以前的数据很少用到,我们将之完全分在分庐舌垩卫区表logs_2016_before中,2016年到现在每个月为一个分区。由于只是测试,我们就建立四个分区表:分区1: logs_2016_before分区2: logs_201601分区3: logs_201602分区4: logs_201603代码:create table schema_a.logs_2016_before(check(created<DATE'2016-01-01')) INHERITS (schema_a.logs);

Postgresql对表进行分区

3、给分区表created建立索引。代码:create index ix_logs_201601_created on schema_a.logs_201601 (created);

Postgresql对表进行分区

4、采取触发器的形式来保证分区表对开发人员的透明性。创建触发器函数logs_insert_trigger,当向主表(logs表)插入数据时,转为插入到相应的分区表。

Postgresql对表进行分区

5、测试插入数据。我们可以看到插入的数据已经插入到相应的分区表中了。当查询不带日期条件时,会扫描所有的表,带上时则只查询相应的子表并且使用我们前面所建立的索引。所以在使用分区表查询时,一定要带上分区条件(即本文中"created")。

Postgresql对表进行分区Postgresql对表进行分区Postgresql对表进行分区
  • 怎么关闭任务栏缩略图?
  • 如何将sql server2005数据库导出?
  • 如何删除WINDOWS中的未知账户
  • 如何从命令提示符还原电源计划为默认值
  • Windows server 2003下ntbackup如何操作备份
  • 热门搜索
    ct什么意思 c1可以开什么车 clap是什么意思 阿里巴巴诚信通是什么 哲学家们都干了些什么 什么是辩证法 经常做梦是什么原因 慕课是什么 代理是什么 口水多是什么原因