Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Porównywanie wielu dat w jednym zapytaniu - problem z wydajnością
ppendel
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 5.12.2005

Ostrzeżenie: (0%)
-----


Witam,

Mam do utworzenia zapytanie w którym muszę sprawdzić trzy daty pochodzące z dwóch tabel, czy znajdują się w jakimś przedziale.

Problem polega na tym, że warunkiem jest że co najmniej jedna z tych dat ma być zawarta w określonym zakresie, czyli:

(tabela1.date1 BETWEEN '2011-08-01' AND '2011-08-31') OR (tabela2.date2 BETWEEN '2011-08-01' AND '2011-08-31') OR (tabela2.date3 BETWEEN '2011-08-01' AND '2011-08-31').

Przy zapytaniu z OR czas wykonania zapytania oscyluje w okolicach 15s, natomiast przy sprawdzaniu jednej daty, bądź wszystkich z warunkiem AND czas wykonania zapytania wynosi 0,2-0,5s.

Czy ktoś wie, czy jest jakiś inny/efektywniejszy sposób na sprawdzenie tego warunku?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Zamień datę na inta przechowującego timestamp i załóż nań indeks.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 20:39