在MySQL中使用时间而不是字符串CURRENT_DATE是个好主意吗?

时间:2012-07-10 05:34:38

标签: php mysql

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

1268557200

而不是:

Sun, 14 Mar 2010 09:00:00 GMT

感谢。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

使用最接近代表您要存储的数据的类型通常最有意义。也就是说,如果您的数据是面向日期的,那么请使用面向日期的字段。它们在内部存储为数字,这比字符串更快地访问,存储,排序等。优点是你可以访问(in和out),就好像它们是字符串一样,但它们的工作方式和数字排序一样。

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