我很确定我知道答案,但任何想法都会非常有用......
首先,这是MySQL 5.1.32社区。我有一个大表(数百万行,不能减小大小 - 即减小的大小),相关字段是两个日期时间字段。我们称之为date1和date2。我需要运行一个返回所有行的select查询(实际上是UUID varchar(40),其中date1> date2。
SELECT id FROM table1 WHERE date1 > date2;
跑步需要太长时间(2分钟)。日期的索引本身显然什么都不做。没有存储两个日期之间的差异并索引 - 任何减少查询时间的方法?这似乎是一个基本问题,但我总是想知道我是否只是错过了一些东西......
答案 0 :(得分:1)
你有没有计算一下,看看是否真的有这么多的数据被归还需要很长时间才能全部归还?
select count(ID) from table1 WHERE date1 > date2;
查询看起来很简单,您的数据量可能就是问题所在。
答案 1 :(得分:0)
我试图找到自己的答案。
但我有一个线索:功能指数。
我在Oracle Dbs上使用过它。
但接缝MySQL缺乏支持: