我有以下选择:
我有一个巨大的表(9999999999999行),我们称之为tableHuge,我想将其拆分为多个表(以优化查询)。此表包含日期(每月的几天),并且大多数查询是使用指定的月份作为select中的搜索键。这引出了以下选择:
选择一: 将表拆分为多个表,使用一个月作为尾巴(如lessHugeTable_01,lessHugeTable_02等)。然后我可以在我的应用程序中小心访问我需要的表。主要的缺点是失去加入的能力,包括超过一个月的情况(或加入工会......好......并发症)。
选择二: 使用表分区。
由于我以前从未使用过分区(所以我没有比较的知识),我想要一些关于如何做的建议,如果可能的话有利有弊(除了明显的事情,比如“如果你的手动分区表被破坏了你只丢失那些数据,而在表格部分你松散整个数据“)。
感谢您的时间。
答案 0 :(得分:3)
这里的答案真的是“依赖”。
更具体地说,它取决于数据的性质,访问数据的方式以及访问数据的方式。
从声音来看,你可能最好选择一年分为和月份的表格。我在这里做了一些疯狂的假设,你需要不那么频繁/永远地访问旧数据,因此可以将其存档以保持主表中的数据量(就像我说“依赖”!);
如果您的表是,并且将始终由一个应用程序访问,您可以构建逻辑来处理您的“尾部”命名约定,那么您可能希望沿着多个表路由。
以下是我看到利弊堆积的方式:
现在正在分区:
PS对某些要点[{3}}
有一个很好的答案