ďťż
 
wydajnosc, podzapytania czy zapytania? ďťż
 
wydajnosc, podzapytania czy zapytania?
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

wydajnosc, podzapytania czy zapytania?



Maciek - 26-03-2007 00:01
wydajnosc, podzapytania czy zapytania?
  witam.
Co jest z zalozenia wydajniejsze (jesli chodzi o szybkosc dzialania):
jedno zapytanie, ktore ma wiele podzapytan do roznych tabel, czesto operujace na
wielu tabelach, ktore wyliczaja dla danego wiersza z glownego zapytania
odpowiednie wartosci czy jedno glowne zapytanie i pozniej w petli wykonywanie
osobno tamtych podzapytan jako zapytania dla kazdego ze znalezionych wierszy z
glownego zapytania?
chodzi mi o MySQL + PHP...
Dzieki z gory za odpowiedz.
Pozdrawiam.

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl





Artur Muszynski - 26-03-2007 00:01

  Maciek wrote:
> witam.
> Co jest z zalozenia wydajniejsze (jesli chodzi o szybkosc dzialania):
> jedno zapytanie, ktore ma wiele podzapytan do roznych tabel, czesto
> operujace na wielu tabelach, ktore wyliczaja dla danego wiersza z
> glownego zapytania odpowiednie wartosci czy jedno glowne zapytanie i
> pozniej w petli wykonywanie osobno tamtych podzapytan jako zapytania
> dla kazdego ze znalezionych wierszy z glownego zapytania?
> chodzi mi o MySQL + PHP...

Po zapytaniach w pętli można łatwo rozpoznać początkujących programistów.
Jeśli wynikiem ma być jedna tabela, to trzeba ją starać się wyprodukować
pojedynczym zapytaniem. Jeśli struktura typu master-child, to mogą być 2,
ale na pewno żadnych pętli.

artur




Herakles - 27-03-2007 00:03

  Maciek wrote:

> witam.
> Co jest z zalozenia wydajniejsze (jesli chodzi o szybkosc dzialania):
> jedno zapytanie, ktore ma wiele podzapytan do roznych tabel, czesto
> operujace na wielu tabelach, ktore wyliczaja dla danego wiersza z glownego
> zapytania odpowiednie wartosci czy jedno glowne zapytanie i pozniej w
> petli wykonywanie osobno tamtych podzapytan jako zapytania dla kazdego ze
> znalezionych wierszy z glownego zapytania?
> chodzi mi o MySQL + PHP...
> Dzieki z gory za odpowiedz.
> Pozdrawiam.
>
Stwórz se tabelkę z milionem losowych rekordów i sprawdź sam!

Ja myślę, że chodzi Ci o taki przypadek(napiszę nieelegancko):

select
p.*,
count(pt.id)
from
p
natural join pt
group by
p.*
order by
p.x
limit 10 offset 10;

Takie coś może trwać dwa dni, więc logicznie wydaje się, że szybciej w
pętli, ale nieprawda, jest wyjście z sytuacji:

select
p.*, count(pt.id)
from
(select p.* from p order by p.x limit 10 offset 10) as p
natural join pt
group by
p.*
order by
p.x

<=> wyniki agregacji nie są potrzebne do sortowań i innych
=> duże tabele należy projektować tak żeby nie były.




jerzy - 29-03-2007 00:03

 
>> chodzi mi o MySQL + PHP...
>
> Po zapytaniach w pętli można łatwo rozpoznać początkujących
> programistów. Jeśli wynikiem ma być jedna tabela, to trzeba ją starać
> się wyprodukować pojedynczym zapytaniem. Jeśli struktura typu
> master-child, to mogą być 2, ale na pewno żadnych pętli.
>
> artur
>
100% racji ale,
specyfiką układu baza_danych/php jest, żeby coś pokazać (Wynik) to
trzeba użyć "echo",
tzn. przeglądarki rozumieją tylko html'a
zdarza się że zakręcenie pętlą upraszcza.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?= =?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?= [ms sql] =?ISO-8859-2?Q?wy=B6wietlenie_pierwszych_5_rekord?==?ISO-8859-2?Q?=F3w_z_zapytania_=3F_odpowiednik_ROWNUM_w_o?== ?ISO-8859-2?Q?raclu_dla_MS_SQL=27a?= phpMyAdmin zadaje =?ISO-8859-2?Q?z=B3e_zapytania=2E=2E=2E_Dl?==?ISO-8859-2?Q?aczego=3F?= [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= [oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?= [mysql/php] jak =?ISO-8859-2?Q?zliczy=E6_ilo=B6=E6_unikalnyc?==?ISO-8859-2?Q?h_rekord=F3w_w_jednym_zapytaniu=3F?= [MySQL] Zapytanie z =?ISO-8859-2?Q?dw=F3ch_tabel_na_raz_?==?ISO-8859-2?Q?i_grupowanie_po_wsp=F3lnym_polu=2E_Jak_=3F?= mecze sie i mecze i nic - zapytanie czesciowe [sql][pgsql] zapytanie sql
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • ponland.htw.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com