有一种规范的方法可以将引用数据分区到另一个表吗?
例如
timetable
id
datetime
bigtable
id
timetable_id -- foreign key
.. other data ..
我想在时间表中按日期时间对bigtable进行分区。 thankx。
答案 0 :(得分:2)
如上所述here,他的分区列必须是表格中所有唯一索引的一部分,其中包括您的主键。
我认为您在这里唯一的选择是将timetable.datetime
列反规范化为bigtable
,以便该列可用于分区。
答案 1 :(得分:2)
分区键必须是要分区的表的列。如果您在id
中的datetime
和timetable
之间存在相关性,那么您可以按该ID进行分区:
id datetime
1 20091001
2 20091002
3 20091003
...
32 20091101
33 20091102
...
62 20091201
...
那么分区范围(2009-10-01,2009-10-31),(2009-11-01,2009-11-30)等可以用id
值表示:(1 ,31),(32,62),...但是,这要求id
值的等级与datetime
值的等级完全匹配。如果您没有此相关性,则必须移动datetime
中的bigtable
列,或者重新排列id
,以便它们与datetime
相关联。< / p>