我有一张有20栏的桌子。
-----------------------------------------------------------------
GUID_PK | GUID_SET_ID | Col_3 | Col_4 | ... | Col_20
-----------------------------------------------------------------可能会有数千个Sets,每个都有几十到不足1000条记录。一组中的记录都是相互关联的。集合是完全相互独立的。一整组是在一个大事务中一次读写的。一旦记录被写入,它就被读--永远只读,永不更改,只读。数据很少从此表中删除。当它被删除时,整个集合一次被删除。
只有SET_ID是传入的外键。PK是另一个表的传出外键。在明细表中,每个主记录保存大约3或4个记录(每个记录一个blob)。
问题是:我应该对表进行分区吗?我想是的。我老板想得更好。他希望动态地创建表,每组都有一个主表。我个人对动态创作的想法并不满意,但我害怕这种一刀切的体系结构。
批量插入和批量选择肯定会影响性能。大容量删除将再次重新排序索引。什么才是最优的结构?
发布于 2013-07-04 08:12:16
考虑到大多数Col_x列都已填充,您可以执行HASH PARTITIONING:
CREATE TABLE
....
PARTITION BY HASH(GUID_SET_ID)
PARTITIONS NO_PART;如果NO_PART是您想要的分区数,那么应该考虑到:
1)每天收到的数据量
2)你估计将来会收到的数据量
此外,您还可以检查其他分区类型这里。
https://stackoverflow.com/questions/17463613
复制相似问题