DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   SQL baze podataka - Sponzor: Baze-Podataka.net (http://www.devprotalk.com/forumdisplay.php?f=10)
-   -   optimizacija koda? (http://www.devprotalk.com/showthread.php?t=827)

Blood 24. 03. 2006. 20:52

optimizacija koda?
 
imam jednu tabelu u bazi sa npr: 30000 unosa, 2. sa 20000 a 3. i 4. sa po 15000,

e sada, kombinacijom sve cetri se pravi jedna tabela od recimo 40000 unosa.

Bilo kakav tip`n`trick u vezi optimizacije koda bi jako dobro dosao :)

Hvala!

PS. ako sam promasio forum, molim administratore da premeste temu! ;)

bluesman 24. 03. 2006. 21:12

Ja mislim da je ovo striktno sql pitanje, malo ima veze sa PHP? Osim ako nisam dobro razumeo.

dinke 24. 03. 2006. 21:28

Premesteno u sql forum.

Elem, morao bi da budes malo precizniji sa tvojim pitanjem, ako zelis i neki konkretan odgovor.

ivanhoe 24. 03. 2006. 21:39

da, na primer sta podrazumevas pod tim da se od ovih ostalih "pravi tabela" sa 40000 unosa ??

Blood 25. 03. 2006. 01:10

pa na primer: SELECT 1,2,3 iz prve WHERE 1='2 iz durge' AND 2='3 iz trece' AND 3='1 iz cetvrte';
i tako za svaki unos...

na to sam mislio...

POzdrav!

ivanhoe 25. 03. 2006. 09:29

neces moci to bas tako, za takve stvari moras da uradis join nad tim tabelama... postoji INNER JOIN (podrazumevano ako se kaze samo join) gde se u rezultatu vracaju samo rekordi koji mogu da se povezu u svim tabelama (prema zadatom uslovu za join), a postoji i LEFT (ili RIGHT) JOIN gde se listaju svi recordi iz jedne tabele, a dodaju im se (sa leve ili desne strane) rekordi iz ostalih tabela ukoliko je moguce povezati ih. Ima i drugih tipova joina (outer, natural i sl..), ali su ovi najbitniji... prostudiraj dobro help o tome, pa tek onda razmisljaj o optimizaciji...

Blood 25. 03. 2006. 18:30

Ja se izvinjavam, bio sam malo pijan kad sam pisao prosli odgovor, nije to ono sto mi treba...

Ja imam ovakav kod, i on radi, ali(uvek ima ali):
[note]
tabela1 = 30000 podataka
tabela2 = 20000 -||-
tabela3 = 15000 -||-
PHP kôd:

$query pg_query(SELECT number FROM tabela1);
while(
$row pg_fetch_array($query)) {
  
$number $row['number'];
  
$num1 substr($number,0,3);
  
$num2 substr($number,3,2);
  
$num3 substr($number,5,1);
  
$query2 pg_query("SELECT field1 FROM tabela2 WHERE field2='$num1' AND field3='$num2' AND field4='$num3'");
  while(
$row2 pg_fetch_array($query2)) {
    
$field1 $row2['field1'];
    
$query3 pg_query("SELECT field2 FROM tabela3 WHERE field1='$field1'");
    while(
$row3 pg_fetch_array($query3)) {
      
$field2 $row3['field2'];
      
$query4 pg_query("INSERT INTO tabela4 VALUES('','$number','$field1','$field2')");
    }
  }


eh, sada mene interesuje da li ovaj kod moze da se optimizuje malo? :)

Pedja 26. 03. 2006. 00:03

Priznaj da si bio pijan kad si pisao ovaj kod gore :)

MorenoArdohain 26. 03. 2006. 00:11

Mislim da bi sve to moglo kao jedan sql upit, mada nisam siguran koliko bi bio brzi

Bojan Zivanovic 26. 03. 2006. 00:19

Ajoj, onaj kod gore mora da je speed monster :D
Mada, radio sam ja i gore stvari ;)


Vreme je GMT +2. Trenutno vreme je 13:32.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.