![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 2 Dołączył: 4.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
witam, zastanawiam się nad tym co będzie bardziej wydajne. Mam do wyciągnięcia rekordy z podziałem na statusy (powiedzmy mam 7 roznych statusów i musze wyciagnąć 5 pierwszych rekordów ze statusem 1 i 2, pozniej 3 i 4, oraz 5, 6 i 7). Czy w takim wypadku wydajnieszy będzie UNION ALL i wykonać to jako 1 zapytanie (jest dość obszerne - ok 8 left joinow, duzo warunkow, roznia sie tylko tymi statusami), czy może wykonać 3 zapytania??
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
A co EXPLAIN Ci mówi?
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Nie powinno być większej różnicy. W końcu UNION ALL też wykonuje wszystkie zapytania i dodatkowo skleja wyniki (nawet nie filtruje duplikatów). Co innego jeżeli chciałbyś wykorzystać query cache. Wtedy jeżeli poszczególne zapytania odwołują się do rożnych tabel, to 'mniejsze' podzapytania indywdidualne mają mniejszą szansę na przeterminowanie niż UNION.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 03:18 |