优化查询,将内容添加到 WHERE 中的当前时间
P粉218775965
P粉218775965 2024-04-04 22:45:06
0
1
396

我有一个查询正在执行以下操作:

AND TIME(NOW() + INTERVAL li.tzOffset HOUR - INTERVAL li.dst HOUR) BETWEEN '08:00:00' AND '20:00:00'

问题是它的性能不是很好,但我不清楚是否有办法提高它的性能。 tzOffset 或 dst 都没有索引。为它们建立索引会有帮助吗?

我目前正在运行 MySQL 5.6,但预计我可能会在一两周内升级到 5.7。如果 MySQL 8.0 具有可以加快查询速度的功能,那么了解这一点也很好,这样我就可以为我们花时间研究这个问题提供理由。

P粉218775965
P粉218775965

全部回复(1)
P粉561438407

请参阅可搜索

更糟糕的是,你基本上已经

WHERE function(variable1, variable2) BETWEEN ...

如果有某种方法可以将 li.tzOffset - li.dst 合并到单个列中,那么您可以这样做

WHERE new_column BETWEEN ...

其中可能能够使用涉及new_columnINDEX

我认为索引生成列是在 5.7 中添加的。如果没有“生成的列”,您将需要添加一个新列并计算其中的差异。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板