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.
请参阅可搜索
更糟糕的是,你基本上已经
如果有某种方法可以将
li.tzOffset - li.dst
合并到单个列中,那么您可以这样做其中可能能够使用涉及
new_column
的INDEX
我认为索引生成列是在 5.7 中添加的。如果没有“生成的列”,您将需要添加一个新列并计算其中的差异。