優化查詢,將內容新增至 WHERE 的目前時間
P粉218775965
P粉218775965 2024-04-04 22:45:06
0
1
451

我有一個查詢正在執行以下操作:

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 中新增的。如果沒有“產生的列”,您將需要新增一個新列並計算其中的差異。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板