我应该添加额外的日期列吗?

时间:2015-04-04 23:59:40

标签: mysql sql relational-database

TL; DR:我有一个带有时间戳列的列。我想按特定日期过滤。我应该添加日期库存吗?

id(AI/PK)    some    fields    timestamp    *date?*

因此,只有时间戳列的查询类似于

SELECT ? 
FROM [TABLE] 
WHERE YEAR(timestamp) = '2015' AND MONTH(timestamp) = '04' AND DAY(timestamp) = '1'

对带有附加日期列的查询

SELECT ? FROM [TABLE] WHERE date = date('04-01-2015')?

我目前正处于项目的规划和设计阶段。但它将是一个非常庞大的生产表。因此,具有日期列的缺点显然是表的大小增加。我想没有日期列的骗局会降低性能。否?

嗯,我不确定这是不是很容易。

1 个答案:

答案 0 :(得分:1)

我不这么认为。你可以这样做:

SELECT ?
FROM [TABLE]
WHERE date(timestamp) = '2015-04-01'

或者,如果您希望查询使用索引:

SELECT ?
FROM [TABLE]
WHERE timestamp >= '2015-04-01' AND
      timestamp < date_add('2015-04-01', interval 1 day);