2013-05-01 157 views
1

很长一段时间我都得到查询在此线程Sum Multiple Row Date Difference Mysql在mysql查询执行

现在的问题是,查询执行时间是那么的漫长。我尝试用一​​些小行数据http://sqlfiddle.com/#!2/0d496/1/0。 当我尝试在本地数据库中执行此查询(我的表总行大约为200.000行)时,它就像是疯狂的事情,因为即使在很长时间内等待,也没有结果。

我想问一下,这个查询默认需要很长时间才能执行?是否有可能使其更快?怎么样?谢谢。

+0

你是否在较短的表格上试过这一点,看看结果是否填充? – brendosthoughts 2013-05-01 03:20:32

+0

@brendan morrison他有,请检查他的问题中的第二个链接 – Patashu 2013-05-01 03:20:56

+0

我怀疑为什么这是慢的原因是子查询,可能会运行一次选择每一行。是否MySQL有分区,也许?你是在索引你的表吗?或者,如果你为表生成一个整数,按日期为每个连续的行增加1,那么索引/写你的查询针对这个整数?这样你就不需要做一个子查询来查找前一行是什么。 – Patashu 2013-05-01 03:24:25

回答

1

尝试增加速度到索引:

KEY LogCarIdxLogDateCarIdSpeed

然后基于C1查询使用该索引(所以说解释)。无法分辨sqlfiddle中的速度差异,但可能有助于全尺寸查询。