MySQL:在具有条件和操作的列上添加索引

标签 mysql optimization indexing

在这样的查询中

SELECT * FROM myTable WHERE date = LEAST(maxDate, '2013-12-31')

我正在寻找将在执行期间使用的索引。 datemaxDateDate 类型。

有什么建议吗?

最佳答案

WHERE 子句中使用函数(UDF 或内置)不会利用现有索引,但您可以像下面这样修改查询,该查询将使用 上已有的索引>datemaxdate (如果有的话)列,例如

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/

相关文章:

mysql - "Other results"用于饼图数据

optimization - 运行程序的动态优化

apache-flex - 弹性 : Does the flex compiler automatically optimize embedded PNG assets?

JavaScript indexOf 没有返回好的结果

mysql - 在同一查询中使用 WHERE IN 和 WHERE NOT IN

php - 将值从数组插入数据库

c++ - 如何检查 a^b == c^d 是否。我面临的问题是循环的速度。我已经优化了寻找指数的部分

elasticsearch - Elasticsearch + Kibana,对uri进行排序不会产生任何结果。 (未分析uri)

ios - 当 UITableView 滚动到非顶部并显示索引 2 超出范围 [0..1] 时,它会崩溃

php - My SQL 搜索框查询