Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:我可以为datetime字段编制索引吗?MySQL不会这么做的_Mysql_Indexing - Fatal编程技术网

MySQL:我可以为datetime字段编制索引吗?MySQL不会这么做的

MySQL:我可以为datetime字段编制索引吗?MySQL不会这么做的,mysql,indexing,Mysql,Indexing,我的大多数查询都测试不同的时间范围,每个范围的内容都是 在不断的变化中,所以我不能在这里缓存太多。耐心地等待任何建议。。。谢谢。我有一张有725K条记录的表格,下面是我的结果: 在创建索引之前: 在无索引的情况下计数:0.59秒 无条件计数:0.8秒 在datetime字段上创建索引:2.28秒 有条件计数:0.07秒 希望这能回答你的问题 您的索引创建似乎被某些人或事打断,但我会仔细检查日志文件,看看是否有任何问题。添加索引会导致索引被填充。你有将近50万条记录,建立索引需要花费超过零的时间。

我的大多数查询都测试不同的时间范围,每个范围的内容都是
在不断的变化中,所以我不能在这里缓存太多。耐心地等待任何建议。。。谢谢。

我有一张有725K条记录的表格,下面是我的结果:

在创建索引之前: 在无索引的情况下计数:0.59秒 无条件计数:0.8秒 在datetime字段上创建索引:2.28秒 有条件计数:0.07秒 希望这能回答你的问题


您的索引创建似乎被某些人或事打断,但我会仔细检查日志文件,看看是否有任何问题。

添加索引会导致索引被填充。你有将近50万条记录,建立索引需要花费超过零的时间。MyISAM count*查询速度很快,因为行计数存储在表元数据中。InnODB count*的速度相对较慢,因为它必须扫描表,不能在某个地方保留一行计数,因为事务会使其不准确。是否有单独运行的清理脚本?当通过另一个mysql会话的kill终止查询时,会显示该错误代码。它可能将alter table命令视为一个失控的进程并将其终止。仅供参考:count*在InnoDB上只有在不使用任何条件的情况下才会变慢。如果指定了WHERE子句,InnoDB和MyISAM应该大致相同。
mysql> create index index_questions_on_publishedAt on questions(publishedAt);
ERROR 1317 (70100): Query execution was interrupted
mysql> select count(*) from questions;
+----------+
| count(*) |
+----------+
|   491773 | 
+----------+
1 row in set (1.02 sec)

# Is it even reasonable for this query to take 1 second?

mysql> select count(*) from questions where publishedAt <= '2011-08-23 19:52:01' and publishedAt >= '2011-08-23 19:49:44';
+----------+
| count(*) |
+----------+
|       30 | 
+----------+
1 row in set (0.71 sec)

MySQL info: Server version: 5.1.41-3ubuntu12.10 (Ubuntu)