空时间戳上的mysql表索引

标签 mysql indexing timestamp

我有一个带有时间戳字段的 mysql 表。
此表上的大部分查询都是 where someIntegerIield=?并且时间戳字段为空

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

也欢迎其他替代方案。

最佳答案

是的,您可以为“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”:它会告诉您它是否为您的查询使用索引(以及使用哪个索引)

关于空时间戳上的mysql表索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13928589/

相关文章:

php - SQL 按 ID 列表过滤

java - 使用 Helper 时 Android 中的 indexOf()

Mysql timestampdiff 重叠间隔之间的总和

linux - dmesg -T 导致时间戳不一致

mysql - MySQL 中的索引 - 101 简介?

Cygwin 和 WinPcap 4.1.3 时间戳 - 微秒问题 - header->ts.tv_usec 不正确 - C 程序

mysql - 匹配包含多个单词的正则表达式

java - 如何用 Java 编写数据库查询中最接近匹配字符串搜索的代码?

php - 如果我将 Bing map 合并到 PHP-MySQL 驱动的网站中,那么网站上线后是否需要许可证?

ios - 在 firestore 索引中自动添加索引