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??
Mchl
12.07.2010, 11:49:26
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.