我有一个包含一个关键表的数据库,该表被广泛使用和查询。该表中数据的生命周期分为两个阶段:Table1
和Table1_Hist
,这样,一旦用户完成工作,记录就会从Table1
传递到{{1 }}进行咨询和报告。
Table1_Hist
的结构是
Table1
该表每月填充数百万条记录,传递给ID (Long) KEY,
Priority (INT)
val1 (VARBINARY(XXXX))
val2 (VARNINARY(XXXX))
的记录没有特定的顺序,这意味着Table1_Hist
可能今天在User1
中插入一条记录,并且今天也完成了处理,但是Table1
可能会在User2
中插入类似的记录,并在下一周或下个月或3个月内完成处理。
当Table1
开始增长到影响该表查询性能的程度时,就会出现此问题。我想到了在Table1_Hist
,Table1_Hist_1
... Table1_Hist_2
中拆分此表并创建一个Table1_Hist_n
表Map,可以在其中注册ID
的范围存储在每个表上。例如,我可能有一张地图,说IDs
中存储着Table1_Hist_1
,范围是1到10M,依此类推,但是就像我之前说的那样,没有顺序将记录插入这些历史表的时间,因此我可能有一个从1到10的映射指向表IDs
,并且在Table1_Hist_1
中也有一个记录ID = 3,因为ID = 3个在2个月后完成,并存储在下表中。
那么,有谁知道一种有效的方法来将一个表及其各自的映射拆分成多个表?