我决定在MySQL中使用时间而不是字符串日期,但我想知道这是不是一个好主意。例如,我使用:
1268557200
而不是:
Sun, 14 Mar 2010 09:00:00 GMT
感谢。
答案 0 :(得分:2)
当然是特殊类型更好。数据库针对此类型进行了优化。例如。你的字符串有很多字符,日期类型是内部整数或长整数,只需4或8个字节。
答案 1 :(得分:1)
使用最接近代表您要存储的数据的类型通常最有意义。也就是说,如果您的数据是面向日期的,那么请使用面向日期的字段。它们在内部存储为数字,这比字符串更快地访问,存储,排序等。优点是你可以访问(in和out),就好像它们是字符串一样,但它们的工作方式和数字排序一样。
重要的一点是不要在查询中使用日期数学。在编写SQL之前,在代码中进行数学计算(添加天数,减去小时数等)。这允许您充分利用索引,查询缓存等。有一些优化可以让您在SQL中保留日期数学,但可能并不明显陷阱的位置。因此,除非您确定您所做的事情已经过优化,否则一个好的经验法则是将计算保持在SQL之外。