mysql表索引null时间戳

时间:2012-12-18 07:54:52

标签: mysql indexing timestamp

我有一个带时间戳字段的mysql表 此表中的大多数查询都是where someIntegerIield=? and theTimestampField is null

我应该将时间戳字段用作索引的一部分吗? 或者我应该创建并维护另一个字段,当时间戳字段为空时将设置为0,否则为1?

也欢迎其他替代方案。

1 个答案:

答案 0 :(得分:0)

是的,您可以使用索引“timestamp1和timestamp2之间的时间”。 MySQL / InnoDB中的默认索引类型是BTREE,它也可以与比较(<,>,之间)以及前缀一起使用。 是的,MySQL确实在索引条件中使用IS NULL / IS NOT NULL。 http://dev.mysql.com/doc/refman/5.5/en//is-null-optimization.html用于某些表类型(包括InnoDB)。

如果您使用的是早期版本的MySQL,您可以随时尝试“EXPLAIN”:它会告诉您它是否使用索引(以及哪个)用于查询