Optimisez la requête pour ajouter du contenu à l'heure actuelle dans OÙ
P粉218775965
P粉218775965 2024-04-04 22:45:06
0
1
403

J'ai une requête qui fait ce qui suit :

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

Le problème est que ses performances ne sont pas très bonnes, mais je ne sais pas s'il existe un moyen d'améliorer ses performances. Il n'y a aucun index sur tzOffset ou dst. Leur indexation serait-elle utile ?

J'utilise actuellement MySQL 5.6, mais je pense que je passerai probablement à la version 5.7 dans une semaine ou deux. Si MySQL 8.0 dispose de fonctionnalités capables d'accélérer les requêtes, il serait également bon de le savoir afin de pouvoir justifier de consacrer du temps à l'étude du problème.

P粉218775965
P粉218775965

répondre à tous(1)
P粉561438407

Voir Recherchable

Ce qui est pire, c'est que vous avez essentiellement

WHERE function(variable1, variable2) BETWEEN ...

S'il existe un moyen de fusionner li.tzOffset - li.dst en une seule colonne, vous pouvez le faire

WHERE new_column BETWEEN ...

Ce qui pourra utiliser implique new_columnINDEX

Je pense que les colonnes génératrices d'index ont été ajoutées dans la version 5.7. S'il n'y a pas de « colonne générée », vous devrez ajouter une nouvelle colonne et calculer la différence.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal