2

我决定在 MySQL 中使用时间而不是字符串日期,但我想知道这是否是个好主意。例如我使用:

1268557200

代替:

Sun, 14 Mar 2010 09:00:00 GMT

谢谢。

4

2 回答 2

2

当然是特殊类型更好。该数据库针对此类类型进行了优化。例如,您的字符串有很多字符,日期类型在内部是整数或长整数,只需要 4 或 8 个字节。

于 2012-07-10T05:39:09.347 回答
1

使用最能代表您尝试存储的数据的类型通常是最有意义的。也就是说,如果您的数据是面向日期的,则使用面向日期的字段。这些在内部存储为数字,这绝对比字符串更快地访问、存储、排序等。优点是您可以像访问字符串一样访问(输入和输出),但它们的工作和排序就像数字一样。

重要的一点是不要在查询中使用日期数学。在编写SQL之前,在代码中进行数学运算(添加天数、减去小时数等) 。这使您可以充分利用索引、查询缓存等。有一些优化可以让您摆脱将日期数学留在 SQL 中的情况,但可能并不明显缺陷在哪里。因此,除非您确定自己所做的事情已经过优化,否则一个好的经验法则是将计算排除在 SQL 之外。

于 2012-07-10T05:58:15.883 回答