【发布时间】:2014-02-21 10:07:22
【问题描述】:
我有以下选择:
我有一个巨大的表(9999999999999 行),我们称之为 tableHuge,我想将它拆分为多个表(以优化查询)。该表包含日期(一个月中的几天),并且大多数查询都是使用指定的月份作为 select 中的搜索键进行的。这导致我做出以下选择:
选择一个: 将表拆分为多个表,以一个月为他的尾巴(如lessHugeTable_01、lessHugeTable_02等)。然后我可以在我的应用程序中小心访问我需要的表。主要的缺点是失去加入的能力,在超过一个月的情况下(或加入工会......好吧......并发症)。
选择两个: 使用表分区。
由于我以前从未使用过分区(所以我没有比较知识),如果可能的话,我想要一些关于如何做到这一点的建议,利弊(除了明显的事情,比如“如果你的手动分区表坏了你只丢失了那些数据,而在表格部分你丢失了整个数据”)。
感谢您的宝贵时间。
【问题讨论】:
-
1E13 行? 什么 那是什么?为什么不归档旧行?
-
我输入了很多 9... 试图说它有很多行。
-
答案取决于 - 您的日期条件是否是可靠的分区定义器。这主要是关于 - 是否会将新记录写入旧日期
-
可以是实体分区。我过于简单化了,表尾将是 _YYYYMM,使其变得稳固。但是nr。创建的表,无法使用连接......有点妨碍我。
-
由于旧日期而可能(或可能不会)写入旧表/分区的新记录怎么办?还有哪些查询应该最常运行?什么是首选 - 添加数据或收集一些统计报告(或两者兼而有之)?