Optimieren Sie die Abfrage, um Inhalte zur aktuellen Zeit in WHERE hinzuzufügen
P粉218775965
P粉218775965 2024-04-04 22:45:06
0
1
398

Ich habe eine Abfrage, die Folgendes bewirkt:

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

Das Problem ist, dass die Leistung nicht sehr gut ist, aber ich weiß nicht, ob es eine Möglichkeit gibt, die Leistung zu verbessern. Es gibt weder für tzOffset noch für dst einen Index. Würde es helfen, sie zu indizieren?

Ich verwende derzeit MySQL 5.6, gehe aber davon aus, dass ich in ein oder zwei Wochen wahrscheinlich auf 5.7 upgraden werde. Wenn MySQL 8.0 über Funktionen verfügt, die Abfragen beschleunigen können, wäre es auch gut, darüber Bescheid zu wissen, damit ich es rechtfertigen kann, Zeit mit der Untersuchung des Problems zu verbringen.

P粉218775965
P粉218775965

Antworte allen(1)
P粉561438407

请参阅可搜索

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

WHERE function(variable1, variable2) BETWEEN ...

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

WHERE new_column BETWEEN ...

其中可能能够使用涉及new_columnINDEX

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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage