PostgreSQL创建表分区

PostgreSQL创建表分区
创建表分区的步骤如下所示:
1。创建主表
创建表的用户(UID int不空主键,名称varchar(20));
2。创建分区表(必须继承上面的主表)
创建表users_0(检查(UID 0和UID < > = 100))继承(用户);
创建表users_1(检查(uid = 100))继承(用户);
三.在分区表中建立索引,实际上可以省略这一步。
创建users_0指数users_0_uidindex(UID);
创建users_1指数users_1_uidindex(UID);
4。创建规则规则
创建规则users_insert_0作为
在插入到用户那里
(UID > = 0和UID<100)
做的
插入users_0值(new.uid,新名称);
创建规则users_insert_1作为
在插入到用户那里
(uid = 100)
做的
插入users_1值(new.uid,新名称);
写入数据可以在下面进行测试。
Postgres = #用户插入(100,'smallfish);
插入00
Postgres = #用户插入(20,aaaaa);
插入00
Postgres = # SELECT * FROM用户;
| UID的名字
----- + -----------
20 | aaaaa
100 |小鱼
(2列数据)
Postgres = # SELECT * FROM users_0;
| UID的名字
----- + -------
20 | aaaaa
(1列数据)
Postgres = # SELECT * FROM users_1;
| UID的名字
----- + -----------
100 |小鱼
(1列数据)
表分区在这里完成,但还有一个地方要修改,首先查看计数查询
Postgres = #解释select count(*)从用户UID<100;
查询计划
---------------------------------------------------------------------------------------------
聚合(成本= 62.75….. 62.76行= 1宽度= 0)
>追加(成本= 6.52….. 60.55行= 879宽度= 0)
用户上的堆扫描>位图(成本= 6.52….. 20.18行= 293宽度= 0)
检查条件:(UID<100)
索引扫描users_pkey ->位图(成本= 0。6.45行= 293宽度= 0)
指数条款:(UID<100)
位图扫描users_0用户->堆(成本= 6.52。20.18行= 293宽度= 0)
检查条件:(UID<100)
索引扫描users_0_uidindex ->位图(成本= 0。6.45行= 293宽度= 0)
指数条款:(UID<100)
位图扫描users_1用户->堆(成本= 6.52。20.18行= 293宽度= 0)
检查条件:(UID<100)
索引扫描users_1_uidindex ->位图(成本= 0。6.45行= 293宽度= 0)
指数条款:(UID<100)
(14列数据)
按照原来的设想,UID小于100。在理论上,你应该查询users_0表,你可以看到其他表扫描所有分区通过解释。
Postgres = #集constraint_exclusion =上;

Postgres = #解释select count(*)从用户UID<100;
查询计划
---------------------------------------------------------------------------------------------
聚合(成本= 41.83….. 41.84行= 1宽度= 0)
>追加(成本= 6.52….. 40.37行= 586宽度= 0)
用户上的堆扫描>位图(成本= 6.52….. 20.18行= 293宽度= 0)
检查条件:(UID<100)
索引扫描users_pkey ->位图(成本= 0。6.45行= 293宽度= 0)
指数条款:(UID<100)
位图扫描users_0用户->堆(成本= 6.52。20.18行= 293宽度= 0)
检查条件:(UID<100)
索引扫描users_0_uidindex ->位图(成本= 0。6.45行= 293宽度= 0)
指数条款:(UID<100)
(10列数据)
这里的整个过程都可以!
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部