MySQL SELECT 来自同一个 table 的子查询

MySQL SELECT subquery from same table

我已经按日期(带有简单索引的时间戳)table 分区了 ~1000000 行。

我需要按日期范围 + 其他可选列条件获取行。

我能以某种方式使用子查询来优化速度吗?

例如:首先在子查询中按日期范围 select 行(按索引会很快),然后 select 行按其他条件从结果临时 table.

不需要子查询来进一步限制您的输出以符合您的条件。您可以安全地将所有约束包含在一个 select 块中,并让优化器完成选择索引(如果有很多并且适用)进行扫描的工作,以便以有效的方式检索正确的结果。

使用 EXPLAIN 调查查询的执行计划并进行自己的比较。请参阅 MySQL 手册以了解有关引擎如何执行您的语句的更多信息。有关查询优化的更多信息,请参阅 section 9.8.