我应该添加一个额外的日期列吗?
Should I add an extra date column?
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')?
我目前正处于项目的规划和设计阶段。但这将是一个非常巨大的 table 生产。因此,使用日期列的缺点显然是增加了 table 的大小。我想没有日期列的缺点会降低性能。没有?
好吧,我不确定是不是那么简单。
我不这么认为。你可以这样做:
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);
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')?
我目前正处于项目的规划和设计阶段。但这将是一个非常巨大的 table 生产。因此,使用日期列的缺点显然是增加了 table 的大小。我想没有日期列的缺点会降低性能。没有?
好吧,我不确定是不是那么简单。
我不这么认为。你可以这样做:
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);