Chinaunix
标题:
postgresql 分区大问题
[打印本页]
作者:
leoxu8703
时间:
2012-02-16 11:07
标题:
postgresql 分区大问题
大家好:
在使用分区的时候,在主表以及分区表上都建立主键约束,但是发现各个分区相对独立,只要在不同的分区里面,就可以插入相同的主键值。大家有没有遇到,或者有什么解决方案!
作者:
unknownspace
时间:
2012-02-16 11:51
分区表设置触发器行不行?
作者:
wang1352083
时间:
2012-03-19 22:04
主键使用序列来实现.应该不会有重复的
作者:
abucaide
时间:
2012-03-31 16:12
可以之间对分区表操作啊
作者:
hmily36
时间:
2012-04-02 18:06
所有分区表使用同一个seq即可,即 CREATE TABLE时 PKid 不要定义成 serial类型而是使用 pkid next(seq)的标准方式
作者:
scottsiu
时间:
2012-04-08 12:12
回复
1#
leoxu8703
这是PostgreSQL的机制所决定,无法改动。
在实际进行表分区Partitioning时,要指定子表的CHECK约束,最好可以使用经常要进行查询的字段,如:消费记录使用“时间”、地区记录使用“地区”
在为每个表建立主键时可以考虑使用第2点中的CHECK字段加上ID作为主键,这样就可以避免全表的主键冲突
一定要在CHECK字段上建立index
postgresql.conf文件的设置
8.x:constraint_exclusion = on
9.x:constraint_exclusion = partition
注意:partition是9.x版本中新加入的操作模式,此参数如果设为on模式,在每次的query中都导致对check约束的检查,这会对性能造成不少的影响;因此9.x中加入了partition模式,它只会在分区表中才会进行check约束的检查
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2