2

我有一个大约 20 列的表。

-----------------------------------------------------------------
  GUID_PK  |  GUID_SET_ID  |  Col_3  |  Col_4  |  ... | Col_20
-----------------------------------------------------------------

可能有数千个,Sets每个记录都有几十到不到一千条记录。集合中的记录都是相互关联的。集合是完全相互独立的。在一个大事务中一次读取/写入一整套。一旦记录被写入,它就永远是只读的,永远不会改变,只能读取。很少从该表中删除数据。当它被删除时,整个集合被一次性删除。

只有SET_ID传入的外键。PK是不同表的传出外键。在详细表中,每个主记录保留大约 3 或 4 条记录(每个记录一个 blob)。

问题是:我应该对表进行分区吗?我认为的。我的老板想得更好。他希望动态创建表格,每组一个主一个细节。我个人对动态创建的想法并不满意,但害怕一张桌子统治他们所有的架构。

批量插入和批量选择肯定会影响性能。批量删除将再次重新排序索引。什么是最佳结构?

4

1 回答 1

1

考虑到大多数Col_x列都已填充,您可以执行以下操作HASH PARTITIONING

CREATE TABLE 

....

PARTITION BY HASH(GUID_SET_ID)
PARTITIONS NO_PART;

您想要的分区数量在哪里NO_PART,这应该考虑到:

1) 您每天收到的数据量
2) 您估计将来会收到的数据量

您也可以在此处查看其他分区类型。

于 2013-07-04T08:12:16.460 回答