假設我有一個DATETIME列approve_time
的'Tasks'表。我在這個專欄上有一個索引。MYSQL的性能WHERE DATE(time)='yyyy-mm-dd'
如果我寫形式的查詢:
SELECT task_id, task_desc, task_owner, approve_time
FROM Tasks
WHERE DATE(approve_time) = '2011-08-31'
我的問題是這樣一個查詢的性能:
是否在允許被約束的方式MySQL索引的DATETIME列日期組件要快?
或者MYSQL知道如何將查詢優化爲如下所示?
WHERE approve_time >= '2011-08-31 00:00:00'
AND approve_time < '2011-09-01 00:00:00'
或者查詢是否產生桌面掃描?
您可以省略第二個查詢中的時間部分('approve_time> ='2011-08 -31'')。在這種情況下,它仍然會使用索引。 – a1ex07
請注意,您可以將'WHERE approve_time> ='2011-08-31 00:00:00' AND approve_time <'2011-09-01 00:00:00''改寫爲'WHERE approve_time BETWEEN'2011-08-31 00:00:00'AND'2011-08-31 23:59:59'' – Johan