Nie użyj czegoś takiego jak WHERE WEEK(column)=something
- to zabójca wydajności:obliczy liczbę tygodni we wszystkich rzędach, nawet jeśli nie pasują do siebie. Ponadto uniemożliwi to użycie indeksu w tej kolumnie.
Zamiast tego oblicz bezwzględną datę rozpoczęcia i zakończenia lub punkt w czasie, w zależności od typu danych, a następnie użyj BETWEEN
. Spowoduje to brak obliczeń na niepasujących wierszach i umożliwi użycie indeksu.
Ogólna zasada:jeśli masz wybór między obliczeniami na stałej i na polu, użyj tego pierwszego.