MySQL性能:DATE与TINYINT

时间:2015-04-19 09:44:06

标签: php mysql

通常我的表包含DATE列,当它永久清空时是0000-00-00。是否最好添加一个额外的列TINYINT,以便跟踪该行是否永久有效,这样我的搜索性能会更好?或者我应该只保留DATE列?

SELECT columns FROM table_name WHERE date_is != '0000-00-00'

SELECT columns FROM table_name WHERE col_emplty != '1'

TinyInt应该搜索得更快,不应该吗?

2 个答案:

答案 0 :(得分:4)

如果需要,可以将date列的默认值设置为null。因此,您只需要检查数据是否为IS NOT NULL,因为添加一个额外的列只是为了查看下一列是否具有正确的日期格式,这是没有意义的。

答案 1 :(得分:-1)

向列添加新字段允许NULL 将解决您的问题,但两者都 是一种良好做法。

如果99%的时间你要根据日期选择数据(可以是任何日期的默认日期)或者要更新这个日期字段,你可以在这里创建一个int列而不是日期类型并将值保持为yyyymmdd(例如:而不是保持'2015-04-19'(日期)保持数据为20150419(10000 *年+ 100 *月+日期)并比较日期值),因为这是一个int列搜索和更新表都很快。