在这样的查询中
SELECT * FROM myTable WHERE date = LEAST(maxDate, '2013-12-31')
我正在寻找将在执行期间使用的索引。 date
和 maxDate
是 Date
类型。
有什么建议吗?
最佳答案
在 WHERE
子句中使用函数(UDF 或内置)不会利用现有索引,但您可以像下面这样修改查询,该查询将使用 上已有的索引>date
或 maxdate
(如果有的话)列,例如
SELECT * FROM myTable
WHERE date = case when maxDate > '2013-12-31' then maxDate else '2013-12-31' end
关于MySQL:在具有条件和操作的列上添加索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27295751/