我们正在重新分解我们的数据库,我们每天会向db添加大约100.000行。 每行现在包含一个日期字段(yy-mm-dd),所以今天我们在表格中输入了“2013-11-29”100.000次。
将日期分成单独的表是否有意义,并使用它的id而不是因为我们不存储时间?
那里有交易。如果我们将其分解,我们将在我们想要稍后查看记录时使用另一个JOIN添加到查询中。当我们查询信息时,我们已经加入了3个表,该数据库包含大约1000万个条目。
有什么想法?数据库正在变得越来越大,所以我们需要关于磁盘空间的事情,但也需要preformens。
答案 0 :(得分:3)
将日期分成单独表格的驱动因素不应该是存储。这是关于数据模型的问题。正如Gareth指出的那样,内置日期的大小和外键的大小大致相同。
真正的问题是,您是否需要有关日期的更多信息,而这些日期是您无法从内置日期函数中获得的。 MySQL有一组丰富的日期函数,您可以在其中获取星期几,将日期格式化为字符串,提取组件等。此外,内置功能还可以处理比较,差异以及向日期添加“间隔”。
如果这些已足够,则使用内置功能。另一方面,如果您有围绕日期的“业务规则”,那么请考虑另一个表。以下是此类业务规则的示例:
日期表只是处理这些问题的一种可能解决方案。但是如果你需要支持这些,那么有一个单独的日期表开始有意义。
答案 1 :(得分:0)
这样做可能没有任何意义,因为存储要求会稍微增加,如果你想开始存储时间,你就会陷入困境。