2016-09-25 59 views
-1

我已按日期(帶有簡單索引的時間戳)對〜1000000行進行分區。來自同一個表的MySQL SELECT子查詢

我需要按日期範圍+其他可選列條件獲取行。

我可以使用子查詢以某種方式進行速度優化嗎?

例如:首先在子查詢中按日期範圍選擇行(索引相當快),然後從結果臨時表中選擇其他條件的行。

+0

請提供'SHOW CREATE TABLE'和一個樣本'SELECT'。模式和/或選擇中有許多細微的東西需要分析。 –

+0

如何做'錯誤'的例子是首先在任何索引中放置時間戳。 –

回答

0

不需要子查詢來進一步限制輸出以符合條件。您可以安全地在一個選擇塊中包含所有約束,並讓優化器執行選擇索引(如果有許多且適用的話)的掃描工作,以便以有效的方式檢索正確的結果。

使用EXPLAIN調查您的查詢的執行計劃並進行自己的比較。請參閱MySQL手冊以瞭解更多關於引擎如何執行您的陳述。有關查詢優化的更多信息,請參閱section 9.8