Mysql查询执行时间很长

Mysql查询执行时间很长,mysql,sql,Mysql,Sql,我已经得到了这个线程中的查询 现在的问题是查询执行时间太长。我尝试使用一点行数据。 当我试图在本地数据库中执行这个查询时(我的表总行数约为200.000行),这就像是一件疯狂的事情,因为即使我等待很长时间也没有结果 我想问,这个查询在默认情况下是否需要很长时间才能执行?有可能使它更快吗?怎么用?谢谢。尝试将速度添加到索引中: 键LogCarIdx(LogDate,CarId,Speed) 然后,基于c1的查询使用索引(explain如是说)。无法分辨sqlfiddle中的速度差异,但在全尺寸查询

我已经得到了这个线程中的查询

现在的问题是查询执行时间太长。我尝试使用一点行数据。 当我试图在本地数据库中执行这个查询时(我的表总行数约为200.000行),这就像是一件疯狂的事情,因为即使我等待很长时间也没有结果


我想问,这个查询在默认情况下是否需要很长时间才能执行?有可能使它更快吗?怎么用?谢谢。

尝试将速度添加到索引中:

LogCarIdx
LogDate
CarId
Speed


然后,基于c1的查询使用索引(explain如是说)。无法分辨sqlfiddle中的速度差异,但在全尺寸查询中可能会有所帮助。

尝试将速度添加到索引中:

LogCarIdx
LogDate
CarId
Speed


然后,基于c1的查询使用索引(explain如是说)。无法分辨sqlfiddle中的速度差异,但可能有助于全尺寸查询。

您是否在较短的表上尝试过此操作,以查看结果是否已填充?@brendan morrison他尝试过,请检查问题中的第二个链接我怀疑此操作速度慢的原因是因为子查询,这可能会对选定的每一行运行一次。mysql有分区吗?您是否按日期为表编制索引?或者,如果您为表生成一个整数,该整数按日期为每一连续行增加1,那么请针对该整数编制索引/编写查询?这样,您就不需要执行子查询来查找前一行是什么。不带索引的联接非常糟糕。请检查我对您原始问题的回答。您是否在较短的表上尝试过此操作以查看是否填充了结果?@brendan morrison He,请检查他的问题中的第二个链接,我怀疑这之所以慢是因为子查询,它可能会为每一个选中的行运行一次。mysql有分区吗?您是否按日期为表编制索引?或者,如果您为表生成一个整数,该整数按日期为每一连续行增加1,那么请针对该整数编制索引/编写查询?这样,您就不需要执行子查询来查找前一行是什么。不建立索引的join非常糟糕请检查我对您原始问题的回答。